1 ; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s 2 3 define void @t0(<2 x i64>* %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind readonly { 4 ; CHECK: t0 5 ; CHECK: pand 6 ; CHECK: ret 7 %cmp1 = icmp ne <2 x i64> %src1, zeroinitializer 8 %cmp2 = icmp ne <2 x i64> %src2, zeroinitializer 9 %t1 = and <2 x i1> %cmp1, %cmp2 10 %t2 = sext <2 x i1> %t1 to <2 x i64> 11 store <2 x i64> %t2, <2 x i64>* %dst 12 ret void 13 } 14 15 define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly { 16 ; CHECK: t2 17 ; CHECK-NOT: pand 18 ; CHECK: ret 19 %cmp1 = icmp ne <3 x i64> %src1, zeroinitializer 20 %cmp2 = icmp ne <3 x i64> %src2, zeroinitializer 21 %t1 = and <3 x i1> %cmp1, %cmp2 22 %t2 = sext <3 x i1> %t1 to <3 x i64> 23 store <3 x i64> %t2, <3 x i64>* %dst 24 ret void 25 } 26