This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / vec_compare.ll
blob39c9b770d5f49903c742b0eaeef5d429766b3ef4
1 ; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck %s
4 define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
5 ; CHECK: test1:
6 ; CHECK: pcmpgtd
7 ; CHECK: ret
9         %C = icmp sgt <4 x i32> %A, %B
10         %D = sext <4 x i1> %C to <4 x i32>
11         ret <4 x i32> %D
14 define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
15 ; CHECK: test2:
16 ; CHECK: pcmp
17 ; CHECK: pcmp
18 ; CHECK: pxor
19 ; CHECK: ret
20         %C = icmp sge <4 x i32> %A, %B
21         %D = sext <4 x i1> %C to <4 x i32>
22         ret <4 x i32> %D
25 define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {
26 ; CHECK: test3:
27 ; CHECK: pcmpgtd
28 ; CHECK: movdqa
29 ; CHECK: ret
30         %C = icmp slt <4 x i32> %A, %B
31         %D = sext <4 x i1> %C to <4 x i32>
32         ret <4 x i32> %D
35 define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {
36 ; CHECK: test4:
37 ; CHECK: movdqa
38 ; CHECK: pcmpgtd
39 ; CHECK: ret
40         %C = icmp ugt <4 x i32> %A, %B
41         %D = sext <4 x i1> %C to <4 x i32>
42         ret <4 x i32> %D