66c64d3252265eb30eacb445e074ebd7570fd2b1
[oota-llvm.git] / test / CodeGen / X86 / vec_zero_cse.ll
1 ; RUN: llc < %s -relocation-model=static -mtriple=i686-unknown -mattr=+mmx,+sse3 | FileCheck %s
2 ; 64-bit stores here do not use MMX.
3
4 @M1 = external global <1 x i64>
5 @M2 = external global <2 x i32>
6
7 @S1 = external global <2 x i64>
8 @S2 = external global <4 x i32>
9
10 define void @test1() {
11 ;CHECK-LABEL: @test1
12 ;CHECK: xorpd
13   store <1 x i64> zeroinitializer, <1 x i64>* @M1
14   store <2 x i32> zeroinitializer, <2 x i32>* @M2
15   ret void
16 }
17
18 define void @test2() {
19 ;CHECK-LABEL: @test2
20 ;CHECK: pcmpeqd
21   store <1 x i64> < i64 -1 >, <1 x i64>* @M1
22   store <2 x i32> < i32 -1, i32 -1 >, <2 x i32>* @M2
23   ret void
24 }
25
26 define void @test3() {
27 ;CHECK-LABEL: @test3
28 ;CHECK: xorps
29   store <2 x i64> zeroinitializer, <2 x i64>* @S1
30   store <4 x i32> zeroinitializer, <4 x i32>* @S2
31   ret void
32 }
33
34 define void @test4() {
35 ;CHECK-LABEL: @test4
36 ;CHECK: pcmpeqd
37   store <2 x i64> < i64 -1, i64 -1>, <2 x i64>* @S1
38   store <4 x i32> < i32 -1, i32 -1, i32 -1, i32 -1 >, <4 x i32>* @S2
39   ret void
40 }
41
42