brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · c1045c7 Raw
245 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mcpu=yonah -mtriple=i386-apple-darwin | FileCheck %s3 4 5define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {6; CHECK-LABEL: test1:7; CHECK:       ## %bb.0:8; CHECK-NEXT:    pcmpgtd %xmm1, %xmm09; CHECK-NEXT:    retl10 11	%C = icmp sgt <4 x i32> %A, %B12        %D = sext <4 x i1> %C to <4 x i32>13	ret <4 x i32> %D14}15 16define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {17; CHECK-LABEL: test2:18; CHECK:       ## %bb.0:19; CHECK-NEXT:    pcmpgtd %xmm0, %xmm120; CHECK-NEXT:    pcmpeqd %xmm0, %xmm021; CHECK-NEXT:    pxor %xmm1, %xmm022; CHECK-NEXT:    retl23	%C = icmp sge <4 x i32> %A, %B24        %D = sext <4 x i1> %C to <4 x i32>25	ret <4 x i32> %D26}27 28define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {29; CHECK-LABEL: test3:30; CHECK:       ## %bb.0:31; CHECK-NEXT:    pcmpgtd %xmm0, %xmm132; CHECK-NEXT:    movdqa %xmm1, %xmm033; CHECK-NEXT:    retl34	%C = icmp slt <4 x i32> %A, %B35        %D = sext <4 x i1> %C to <4 x i32>36	ret <4 x i32> %D37}38 39define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {40; CHECK-LABEL: test4:41; CHECK:       ## %bb.0:42; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]43; CHECK-NEXT:    pxor %xmm2, %xmm144; CHECK-NEXT:    pxor %xmm2, %xmm045; CHECK-NEXT:    pcmpgtd %xmm1, %xmm046; CHECK-NEXT:    retl47	%C = icmp ugt <4 x i32> %A, %B48        %D = sext <4 x i1> %C to <4 x i32>49	ret <4 x i32> %D50}51 52define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) nounwind {53; CHECK-LABEL: test5:54; CHECK:       ## %bb.0:55; CHECK-NEXT:    pcmpeqd %xmm1, %xmm056; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[1,0,3,2]57; CHECK-NEXT:    pand %xmm1, %xmm058; CHECK-NEXT:    retl59	%C = icmp eq <2 x i64> %A, %B60	%D = sext <2 x i1> %C to <2 x i64>61	ret <2 x i64> %D62}63 64define <2 x i64> @test6(<2 x i64> %A, <2 x i64> %B) nounwind {65; CHECK-LABEL: test6:66; CHECK:       ## %bb.0:67; CHECK-NEXT:    pcmpeqd %xmm1, %xmm068; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[1,0,3,2]69; CHECK-NEXT:    pand %xmm1, %xmm070; CHECK-NEXT:    pcmpeqd %xmm1, %xmm171; CHECK-NEXT:    pxor %xmm1, %xmm072; CHECK-NEXT:    retl73	%C = icmp ne <2 x i64> %A, %B74	%D = sext <2 x i1> %C to <2 x i64>75	ret <2 x i64> %D76}77 78define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind {79; CHECK-LABEL: test7:80; CHECK:       ## %bb.0:81; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]82; CHECK-NEXT:    pxor %xmm2, %xmm183; CHECK-NEXT:    pxor %xmm2, %xmm084; CHECK-NEXT:    movdqa %xmm0, %xmm285; CHECK-NEXT:    pcmpgtd %xmm1, %xmm286; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]87; CHECK-NEXT:    pcmpeqd %xmm1, %xmm088; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]89; CHECK-NEXT:    pand %xmm3, %xmm190; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,3,3]91; CHECK-NEXT:    por %xmm1, %xmm092; CHECK-NEXT:    retl93	%C = icmp sgt <2 x i64> %A, %B94	%D = sext <2 x i1> %C to <2 x i64>95	ret <2 x i64> %D96}97 98define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind {99; CHECK-LABEL: test8:100; CHECK:       ## %bb.0:101; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]102; CHECK-NEXT:    pxor %xmm2, %xmm0103; CHECK-NEXT:    pxor %xmm2, %xmm1104; CHECK-NEXT:    movdqa %xmm1, %xmm2105; CHECK-NEXT:    pcmpgtd %xmm0, %xmm2106; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]107; CHECK-NEXT:    pcmpeqd %xmm0, %xmm1108; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]109; CHECK-NEXT:    pand %xmm3, %xmm1110; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,3,3]111; CHECK-NEXT:    por %xmm1, %xmm0112; CHECK-NEXT:    retl113	%C = icmp slt <2 x i64> %A, %B114	%D = sext <2 x i1> %C to <2 x i64>115	ret <2 x i64> %D116}117 118define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind {119; CHECK-LABEL: test9:120; CHECK:       ## %bb.0:121; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]122; CHECK-NEXT:    pxor %xmm2, %xmm0123; CHECK-NEXT:    pxor %xmm2, %xmm1124; CHECK-NEXT:    movdqa %xmm1, %xmm2125; CHECK-NEXT:    pcmpgtd %xmm0, %xmm2126; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]127; CHECK-NEXT:    pcmpeqd %xmm0, %xmm1128; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[1,1,3,3]129; CHECK-NEXT:    pand %xmm3, %xmm0130; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]131; CHECK-NEXT:    por %xmm0, %xmm1132; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0133; CHECK-NEXT:    pxor %xmm1, %xmm0134; CHECK-NEXT:    retl135	%C = icmp sge <2 x i64> %A, %B136	%D = sext <2 x i1> %C to <2 x i64>137	ret <2 x i64> %D138}139 140define <2 x i64> @test10(<2 x i64> %A, <2 x i64> %B) nounwind {141; CHECK-LABEL: test10:142; CHECK:       ## %bb.0:143; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]144; CHECK-NEXT:    pxor %xmm2, %xmm1145; CHECK-NEXT:    pxor %xmm2, %xmm0146; CHECK-NEXT:    movdqa %xmm0, %xmm2147; CHECK-NEXT:    pcmpgtd %xmm1, %xmm2148; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]149; CHECK-NEXT:    pcmpeqd %xmm1, %xmm0150; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]151; CHECK-NEXT:    pand %xmm3, %xmm0152; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]153; CHECK-NEXT:    por %xmm0, %xmm1154; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0155; CHECK-NEXT:    pxor %xmm1, %xmm0156; CHECK-NEXT:    retl157	%C = icmp sle <2 x i64> %A, %B158	%D = sext <2 x i1> %C to <2 x i64>159	ret <2 x i64> %D160}161 162define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind {163; CHECK-LABEL: test11:164; CHECK:       ## %bb.0:165; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]166; CHECK-NEXT:    pxor %xmm2, %xmm1167; CHECK-NEXT:    pxor %xmm2, %xmm0168; CHECK-NEXT:    movdqa %xmm0, %xmm2169; CHECK-NEXT:    pcmpgtd %xmm1, %xmm2170; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]171; CHECK-NEXT:    pcmpeqd %xmm1, %xmm0172; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]173; CHECK-NEXT:    pand %xmm3, %xmm1174; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,3,3]175; CHECK-NEXT:    por %xmm1, %xmm0176; CHECK-NEXT:    retl177	%C = icmp ugt <2 x i64> %A, %B178	%D = sext <2 x i1> %C to <2 x i64>179	ret <2 x i64> %D180}181 182define <2 x i64> @test12(<2 x i64> %A, <2 x i64> %B) nounwind {183; CHECK-LABEL: test12:184; CHECK:       ## %bb.0:185; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]186; CHECK-NEXT:    pxor %xmm2, %xmm0187; CHECK-NEXT:    pxor %xmm2, %xmm1188; CHECK-NEXT:    movdqa %xmm1, %xmm2189; CHECK-NEXT:    pcmpgtd %xmm0, %xmm2190; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]191; CHECK-NEXT:    pcmpeqd %xmm0, %xmm1192; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]193; CHECK-NEXT:    pand %xmm3, %xmm1194; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,3,3]195; CHECK-NEXT:    por %xmm1, %xmm0196; CHECK-NEXT:    retl197	%C = icmp ult <2 x i64> %A, %B198	%D = sext <2 x i1> %C to <2 x i64>199	ret <2 x i64> %D200}201 202define <2 x i64> @test13(<2 x i64> %A, <2 x i64> %B) nounwind {203; CHECK-LABEL: test13:204; CHECK:       ## %bb.0:205; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]206; CHECK-NEXT:    pxor %xmm2, %xmm0207; CHECK-NEXT:    pxor %xmm2, %xmm1208; CHECK-NEXT:    movdqa %xmm1, %xmm2209; CHECK-NEXT:    pcmpgtd %xmm0, %xmm2210; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]211; CHECK-NEXT:    pcmpeqd %xmm0, %xmm1212; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[1,1,3,3]213; CHECK-NEXT:    pand %xmm3, %xmm0214; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]215; CHECK-NEXT:    por %xmm0, %xmm1216; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0217; CHECK-NEXT:    pxor %xmm1, %xmm0218; CHECK-NEXT:    retl219	%C = icmp uge <2 x i64> %A, %B220	%D = sext <2 x i1> %C to <2 x i64>221	ret <2 x i64> %D222}223 224define <2 x i64> @test14(<2 x i64> %A, <2 x i64> %B) nounwind {225; CHECK-LABEL: test14:226; CHECK:       ## %bb.0:227; CHECK-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]228; CHECK-NEXT:    pxor %xmm2, %xmm1229; CHECK-NEXT:    pxor %xmm2, %xmm0230; CHECK-NEXT:    movdqa %xmm0, %xmm2231; CHECK-NEXT:    pcmpgtd %xmm1, %xmm2232; CHECK-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]233; CHECK-NEXT:    pcmpeqd %xmm1, %xmm0234; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]235; CHECK-NEXT:    pand %xmm3, %xmm0236; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]237; CHECK-NEXT:    por %xmm0, %xmm1238; CHECK-NEXT:    pcmpeqd %xmm0, %xmm0239; CHECK-NEXT:    pxor %xmm1, %xmm0240; CHECK-NEXT:    retl241	%C = icmp ule <2 x i64> %A, %B242	%D = sext <2 x i1> %C to <2 x i64>243	ret <2 x i64> %D244}245