• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -mtriple=x86_64-linux -mcpu=penryn |  FileCheck %s
2
3define 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
15define 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