; RUN: opt -S -instcombine < %s | FileCheck %s define i1 @test1(i16* %x) { %load = load i16, i16* %x, align 4 %trunc = trunc i16 %load to i8 %cmp1 = icmp eq i8 %trunc, 127 %and = and i16 %load, -256 %cmp2 = icmp eq i16 %and, 17664 %or = and i1 %cmp1, %cmp2 ret i1 %or ; CHECK-LABEL: @test1( ; CHECK-NEXT: load i16 ; CHECK-NEXT: icmp eq i16 %load, 17791 ; CHECK-NEXT: ret i1 } define i1 @test2(i16* %x) { %load = load i16, i16* %x, align 4 %and = and i16 %load, -256 %cmp1 = icmp eq i16 %and, 32512 %trunc = trunc i16 %load to i8 %cmp2 = icmp eq i8 %trunc, 69 %or = and i1 %cmp1, %cmp2 ret i1 %or ; CHECK-LABEL: @test2( ; CHECK-NEXT: load i16 ; CHECK-NEXT: icmp eq i16 %load, 32581 ; CHECK-NEXT: ret i1 }