It seems better to scalarize vectors of size 1 instead of widening them.
[oota-llvm.git] / test / CodeGen / X86 / vsplit-and.ll
1 ; RUN: llc < %s -march=x86 -disable-mmx |  FileCheck %s
2
3
4 define void @t(<2 x i64>* %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind readonly {
5 ; CHECK: andb
6   %cmp1 = icmp ne <2 x i64> %src1, zeroinitializer
7   %cmp2 = icmp ne <2 x i64> %src2, zeroinitializer
8   %t1 = and <2 x i1> %cmp1, %cmp2
9   %t2 = sext <2 x i1> %t1 to <2 x i64>
10   store <2 x i64> %t2, <2 x i64>* %dst
11   ret void
12 }
13
14 define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly {
15 ; CHECK: andb
16   %cmp1 = icmp ne <3 x i64> %src1, zeroinitializer
17   %cmp2 = icmp ne <3 x i64> %src2, zeroinitializer
18   %t1 = and <3 x i1> %cmp1, %cmp2
19   %t2 = sext <3 x i1> %t1 to <3 x i64>
20   store <3 x i64> %t2, <3 x i64>* %dst
21   ret void
22 }