1; RUN: llc < %s -march=x86 -mcpu=yonah -mtriple=i386-apple-darwin | FileCheck %s 2 3 4define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind { 5; CHECK: test1: 6; CHECK: pcmpgtd 7; CHECK: ret 8 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 12} 13 14define <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 23} 24 25define <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 33} 34 35define <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 43} 44 45define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) nounwind { 46; CHECK: test5: 47; CHECK: pcmpeqd 48; CHECK: pshufd $-79 49; CHECK: pand 50; CHECK: ret 51 %C = icmp eq <2 x i64> %A, %B 52 %D = sext <2 x i1> %C to <2 x i64> 53 ret <2 x i64> %D 54} 55 56define <2 x i64> @test6(<2 x i64> %A, <2 x i64> %B) nounwind { 57; CHECK: test6: 58; CHECK: pcmpeqd 59; CHECK: pshufd $-79 60; CHECK: pand 61; CHECK: pcmpeqd 62; CHECK: pxor 63; CHECK: ret 64 %C = icmp ne <2 x i64> %A, %B 65 %D = sext <2 x i1> %C to <2 x i64> 66 ret <2 x i64> %D 67} 68