blob: 55ae7fea9af060bbb59b3b83bbb28ea6a352213c [file] [log] [blame]
Duncan Sandse7de3b22012-07-05 09:32:46 +00001; RUN: llc -march=x86 -mcpu=nehalem < %s | FileCheck %s
2
NAKAMURA Takumi365f1b82012-07-06 12:12:39 +00003; FIXME: The failure cannot be reproduced with, ... why?
4; llc -mtriple=i686-win32 -mcpu=nehalem
5; XFAIL: cygwin,mingw32,win32
6
Duncan Sandse7de3b22012-07-05 09:32:46 +00007define <4 x i32> @test_ueq(<4 x float> %in) {
8entry:
9 ; CHECK: pcmpeqd %xmm0, %xmm0
10 ; CHECK-NEXT: ret
11 %0 = fcmp ueq <4 x float> %in, %in
12 %1 = sext <4 x i1> %0 to <4 x i32>
13 ret <4 x i32> %1
14}
15
16define <4 x i32> @test_uge(<4 x float> %in) {
17entry:
18 ; CHECK: pcmpeqd %xmm0, %xmm0
19 ; CHECK-NEXT: ret
20 %0 = fcmp uge <4 x float> %in, %in
21 %1 = sext <4 x i1> %0 to <4 x i32>
22 ret <4 x i32> %1
23}
24
25define <4 x i32> @test_ule(<4 x float> %in) {
26entry:
27 ; CHECK: pcmpeqd %xmm0, %xmm0
28 ; CHECK-NEXT: ret
29 %0 = fcmp ule <4 x float> %in, %in
30 %1 = sext <4 x i1> %0 to <4 x i32>
31 ret <4 x i32> %1
32}
33
34define <4 x i32> @test_one(<4 x float> %in) {
35entry:
36 ; CHECK: xorps %xmm0, %xmm0
37 ; CHECK-NEXT: ret
38 %0 = fcmp one <4 x float> %in, %in
39 %1 = sext <4 x i1> %0 to <4 x i32>
40 ret <4 x i32> %1
41}
42
43define <4 x i32> @test_ogt(<4 x float> %in) {
44entry:
45 ; CHECK: xorps %xmm0, %xmm0
46 ; CHECK-NEXT: ret
47 %0 = fcmp ogt <4 x float> %in, %in
48 %1 = sext <4 x i1> %0 to <4 x i32>
49 ret <4 x i32> %1
50}
51
52define <4 x i32> @test_olt(<4 x float> %in) {
53entry:
54 ; CHECK: xorps %xmm0, %xmm0
55 ; CHECK-NEXT: ret
56 %0 = fcmp olt <4 x float> %in, %in
57 %1 = sext <4 x i1> %0 to <4 x i32>
58 ret <4 x i32> %1
59}