brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · facaef2 Raw
200 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i386-apple-darwin10 -mcpu=corei7-avx -mattr=+avx | FileCheck %s3 4declare i32 @llvm.x86.avx.ptestz.256(<4 x i64> %p1, <4 x i64> %p2) nounwind5declare i32 @llvm.x86.avx.ptestc.256(<4 x i64> %p1, <4 x i64> %p2) nounwind6 7define <4 x float> @test1(<4 x i64> %a, <4 x float> %b) nounwind {8; CHECK-LABEL: test1:9; CHECK:       ## %bb.0: ## %entry10; CHECK-NEXT:    vptest %ymm0, %ymm011; CHECK-NEXT:    jne LBB0_212; CHECK-NEXT:  ## %bb.1: ## %bb113; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm014; CHECK-NEXT:    vzeroupper15; CHECK-NEXT:    retl16; CHECK-NEXT:  LBB0_2: ## %bb217; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm018; CHECK-NEXT:    vzeroupper19; CHECK-NEXT:    retl20entry:21 22  %res = call i32 @llvm.x86.avx.ptestz.256(<4 x i64> %a, <4 x i64> %a) nounwind23  %one = icmp ne i32 %res, 024  br i1 %one, label %bb1, label %bb225 26bb1:27  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >28  br label %return29 30bb2:31	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >32	br label %return33 34return:35  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]36  ret <4 x float> %e37}38 39define <4 x float> @test3(<4 x i64> %a, <4 x float> %b) nounwind {40; CHECK-LABEL: test3:41; CHECK:       ## %bb.0: ## %entry42; CHECK-NEXT:    vptest %ymm0, %ymm043; CHECK-NEXT:    jne LBB1_244; CHECK-NEXT:  ## %bb.1: ## %bb145; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm046; CHECK-NEXT:    vzeroupper47; CHECK-NEXT:    retl48; CHECK-NEXT:  LBB1_2: ## %bb249; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm050; CHECK-NEXT:    vzeroupper51; CHECK-NEXT:    retl52entry:53 54  %res = call i32 @llvm.x86.avx.ptestz.256(<4 x i64> %a, <4 x i64> %a) nounwind55  %one = trunc i32 %res to i156  br i1 %one, label %bb1, label %bb257 58bb1:59  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >60  br label %return61 62bb2:63	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >64	br label %return65 66return:67  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]68  ret <4 x float> %e69}70 71define <4 x float> @test4(<4 x i64> %a, <4 x float> %b) nounwind {72; CHECK-LABEL: test4:73; CHECK:       ## %bb.0: ## %entry74; CHECK-NEXT:    vptest %ymm0, %ymm075; CHECK-NEXT:    jae LBB2_276; CHECK-NEXT:  ## %bb.1: ## %bb177; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm078; CHECK-NEXT:    vzeroupper79; CHECK-NEXT:    retl80; CHECK-NEXT:  LBB2_2: ## %bb281; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm082; CHECK-NEXT:    vzeroupper83; CHECK-NEXT:    retl84entry:85 86  %res = call i32 @llvm.x86.avx.ptestc.256(<4 x i64> %a, <4 x i64> %a) nounwind87  %one = icmp ne i32 %res, 088  br i1 %one, label %bb1, label %bb289 90bb1:91  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >92  br label %return93 94bb2:95	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >96	br label %return97 98return:99  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]100  ret <4 x float> %e101}102 103define <4 x float> @test6(<4 x i64> %a, <4 x float> %b) nounwind {104; CHECK-LABEL: test6:105; CHECK:       ## %bb.0: ## %entry106; CHECK-NEXT:    vptest %ymm0, %ymm0107; CHECK-NEXT:    jae LBB3_2108; CHECK-NEXT:  ## %bb.1: ## %bb1109; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0110; CHECK-NEXT:    vzeroupper111; CHECK-NEXT:    retl112; CHECK-NEXT:  LBB3_2: ## %bb2113; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0114; CHECK-NEXT:    vzeroupper115; CHECK-NEXT:    retl116entry:117 118  %res = call i32 @llvm.x86.avx.ptestc.256(<4 x i64> %a, <4 x i64> %a) nounwind119  %one = trunc i32 %res to i1120  br i1 %one, label %bb1, label %bb2121 122bb1:123  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >124  br label %return125 126bb2:127	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >128	br label %return129 130return:131  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]132  ret <4 x float> %e133}134 135define <4 x float> @test7(<4 x i64> %a, <4 x float> %b) nounwind {136; CHECK-LABEL: test7:137; CHECK:       ## %bb.0: ## %entry138; CHECK-NEXT:    vptest %ymm0, %ymm0139; CHECK-NEXT:    jne LBB4_2140; CHECK-NEXT:  ## %bb.1: ## %bb1141; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0142; CHECK-NEXT:    vzeroupper143; CHECK-NEXT:    retl144; CHECK-NEXT:  LBB4_2: ## %bb2145; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0146; CHECK-NEXT:    vzeroupper147; CHECK-NEXT:    retl148entry:149 150  %res = call i32 @llvm.x86.avx.ptestz.256(<4 x i64> %a, <4 x i64> %a) nounwind151  %one = icmp eq i32 %res, 1152  br i1 %one, label %bb1, label %bb2153 154bb1:155  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >156  br label %return157 158bb2:159	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >160	br label %return161 162return:163  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]164  ret <4 x float> %e165}166 167define <4 x float> @test8(<4 x i64> %a, <4 x float> %b) nounwind {168; CHECK-LABEL: test8:169; CHECK:       ## %bb.0: ## %entry170; CHECK-NEXT:    vptest %ymm0, %ymm0171; CHECK-NEXT:    je LBB5_2172; CHECK-NEXT:  ## %bb.1: ## %bb1173; CHECK-NEXT:    vaddps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0174; CHECK-NEXT:    vzeroupper175; CHECK-NEXT:    retl176; CHECK-NEXT:  LBB5_2: ## %bb2177; CHECK-NEXT:    vdivps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm1, %xmm0178; CHECK-NEXT:    vzeroupper179; CHECK-NEXT:    retl180entry:181 182  %res = call i32 @llvm.x86.avx.ptestz.256(<4 x i64> %a, <4 x i64> %a) nounwind183  %one = icmp ne i32 %res, 1184  br i1 %one, label %bb1, label %bb2185 186bb1:187  %c = fadd <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >188  br label %return189 190bb2:191	%d = fdiv <4 x float> %b, < float 1.000000e+002, float 2.000000e+002, float 3.000000e+002, float 4.000000e+002 >192	br label %return193 194return:195  %e = phi <4 x float> [%c, %bb1], [%d, %bb2]196  ret <4 x float> %e197}198 199 200