1 ; RUN: opt -S -instcombine < %s | FileCheck %s 2 3 define i1 @test1(i16* %x) { 4 %load = load i16, i16* %x, align 4 5 %trunc = trunc i16 %load to i8 6 %cmp1 = icmp eq i8 %trunc, 127 7 %and = and i16 %load, -256 8 %cmp2 = icmp eq i16 %and, 17664 9 %or = and i1 %cmp1, %cmp2 10 ret i1 %or 11 ; CHECK-LABEL: @test1( 12 ; CHECK-NEXT: load i16 13 ; CHECK-NEXT: icmp eq i16 %load, 17791 14 ; CHECK-NEXT: ret i1 15 } 16 17 define i1 @test2(i16* %x) { 18 %load = load i16, i16* %x, align 4 19 %and = and i16 %load, -256 20 %cmp1 = icmp eq i16 %and, 32512 21 %trunc = trunc i16 %load to i8 22 %cmp2 = icmp eq i8 %trunc, 69 23 %or = and i1 %cmp1, %cmp2 24 ret i1 %or 25 ; CHECK-LABEL: @test2( 26 ; CHECK-NEXT: load i16 27 ; CHECK-NEXT: icmp eq i16 %load, 32581 28 ; CHECK-NEXT: ret i1 29 } 30