+++ /dev/null
-; Checks to see that instcombine can handle a sign extension of i1
-
-; RUN: opt < %s -instcombine -S | FileCheck %s
-
-define void @test(<2 x i16> %srcA, <2 x i16> %srcB, <2 x i16>* %dst) nounwind {
-entry:
-; CHECK-NOT: tmask
-; CHECK: ret
- %cmp = icmp eq <2 x i16> %srcB, %srcA;
- %sext = sext <2 x i1> %cmp to <2 x i16>;
- %tmask = ashr <2 x i16> %sext, <i16 15, i16 15> ;
- store <2 x i16> %tmask, <2 x i16>* %dst;
- ret void
-}
; CHECK-NEXT: ret i32
}
+define void @test11(<2 x i16> %srcA, <2 x i16> %srcB, <2 x i16>* %dst) {
+ %cmp = icmp eq <2 x i16> %srcB, %srcA
+ %sext = sext <2 x i1> %cmp to <2 x i16>
+ %tmask = ashr <2 x i16> %sext, <i16 15, i16 15>
+ store <2 x i16> %tmask, <2 x i16>* %dst
+ ret void
+; CHECK: @test11
+; CHECK-NEXT: icmp eq
+; CHECK-NEXT: sext <2 x i1>
+; CHECK-NEXT: store <2 x i16>
+; CHECK-NEXT: ret
+}