xref: /llvm-project/llvm/test/CodeGen/X86/sext-setcc-self.ll (revision 25528d6de70e98683722e28655d8568d5f09b5c7)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=x86_64-unknown-unknown < %s | FileCheck %s
3
4define <4 x i32> @test_ueq(<4 x float> %in) {
5; CHECK-LABEL: test_ueq:
6; CHECK:       # %bb.0:
7; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0
8; CHECK-NEXT:    retq
9  %t0 = fcmp ueq <4 x float> %in, %in
10  %t1 = sext <4 x i1> %t0 to <4 x i32>
11  ret <4 x i32> %t1
12}
13
14define <4 x i32> @test_uge(<4 x float> %in) {
15; CHECK-LABEL: test_uge:
16; CHECK:       # %bb.0:
17; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0
18; CHECK-NEXT:    retq
19  %t0 = fcmp uge <4 x float> %in, %in
20  %t1 = sext <4 x i1> %t0 to <4 x i32>
21  ret <4 x i32> %t1
22}
23
24define <4 x i32> @test_ule(<4 x float> %in) {
25; CHECK-LABEL: test_ule:
26; CHECK:       # %bb.0:
27; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0
28; CHECK-NEXT:    retq
29  %t0 = fcmp ule <4 x float> %in, %in
30  %t1 = sext <4 x i1> %t0 to <4 x i32>
31  ret <4 x i32> %t1
32}
33
34define <4 x i32> @test_one(<4 x float> %in) {
35; CHECK-LABEL: test_one:
36; CHECK:       # %bb.0:
37; CHECK-NEXT:    xorps %xmm0, %xmm0
38; CHECK-NEXT:    retq
39  %t0 = fcmp one <4 x float> %in, %in
40  %t1 = sext <4 x i1> %t0 to <4 x i32>
41  ret <4 x i32> %t1
42}
43
44define <4 x i32> @test_ogt(<4 x float> %in) {
45; CHECK-LABEL: test_ogt:
46; CHECK:       # %bb.0:
47; CHECK-NEXT:    xorps %xmm0, %xmm0
48; CHECK-NEXT:    retq
49  %t0 = fcmp ogt <4 x float> %in, %in
50  %t1 = sext <4 x i1> %t0 to <4 x i32>
51  ret <4 x i32> %t1
52}
53
54define <4 x i32> @test_olt(<4 x float> %in) {
55; CHECK-LABEL: test_olt:
56; CHECK:       # %bb.0:
57; CHECK-NEXT:    xorps %xmm0, %xmm0
58; CHECK-NEXT:    retq
59  %t0 = fcmp olt <4 x float> %in, %in
60  %t1 = sext <4 x i1> %t0 to <4 x i32>
61  ret <4 x i32> %t1
62}
63