brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · a07e617 Raw
50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt --passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3 4define i1 @test(double %circ_radius, ptr %x) {5; CHECK-LABEL: define i1 @test(6; CHECK-SAME: double [[CIRC_RADIUS:%.*]], ptr [[X:%.*]]) {7; CHECK-NEXT:  [[ENTRY:.*:]]8; CHECK-NEXT:    [[TMP0:%.*]] = load double, ptr [[X]], align 89; CHECK-NEXT:    [[ADD20:%.*]] = fadd double [[TMP0]], 0.000000e+0010; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x double> poison, double [[CIRC_RADIUS]], i32 311; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x double> [[TMP1]], double [[TMP0]], i32 012; CHECK-NEXT:    [[TMP3:%.*]] = insertelement <4 x double> [[TMP2]], double [[ADD20]], i32 213; CHECK-NEXT:    [[TMP4:%.*]] = shufflevector <4 x double> [[TMP3]], <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 2, i32 3>14; CHECK-NEXT:    [[TMP5:%.*]] = shufflevector <4 x double> [[TMP3]], <4 x double> <double 0.000000e+00, double poison, double 0.000000e+00, double 0.000000e+00>, <4 x i32> <i32 4, i32 0, i32 6, i32 7>15; CHECK-NEXT:    [[TMP6:%.*]] = fmul <4 x double> [[TMP4]], [[TMP5]]16; CHECK-NEXT:    [[TMP7:%.*]] = shufflevector <4 x double> [[TMP6]], <4 x double> <double poison, double poison, double 0.000000e+00, double poison>, <4 x i32> <i32 1, i32 2, i32 6, i32 0>17; CHECK-NEXT:    [[TMP8:%.*]] = fadd <4 x double> [[TMP6]], [[TMP7]]18; CHECK-NEXT:    [[TMP9:%.*]] = call <4 x double> @llvm.sqrt.v4f64(<4 x double> [[TMP8]])19; CHECK-NEXT:    [[TMP10:%.*]] = fcmp olt <4 x double> [[TMP9]], splat (double 1.000000e+00)20; CHECK-NEXT:    [[TMP11:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP10]])21; CHECK-NEXT:    ret i1 [[TMP11]]22;23entry:24  %0 = load double, ptr %x, align 825  %square = fmul double %0, 0.000000e+0026  %square105 = fmul double %0, %027  %add = fadd double %square, %square10528  %sqrt116 = call double @llvm.sqrt.f64(double %add)29  %add20 = fadd double %0, 0.000000e+0030  %square106 = fmul double %add20, 0.000000e+0031  %add25 = fadd double %square105, %square10632  %sqrt115 = call double @llvm.sqrt.f64(double %add25)33  %square109 = fmul double %circ_radius, 0.000000e+0034  %add39 = fadd double %square106, 0.000000e+0035  %sqrt114 = call double @llvm.sqrt.f64(double %add39)36  %add50 = fadd double %square, %square10937  %sqrt = call double @llvm.sqrt.f64(double %add50)38  %cmp52 = fcmp olt double %sqrt116, 1.000000e+0039  %cmp54 = fcmp olt double %sqrt115, 1.000000e+0040  %or.cond = or i1 %cmp52, %cmp5441  %cmp57 = fcmp olt double %sqrt114, 1.000000e+0042  %or.cond112 = or i1 %or.cond, %cmp5743  %cmp60 = fcmp olt double %sqrt, 1.000000e+0044  %or.cond113 = or i1 %or.cond112, %cmp6045  ret i1 %or.cond11346}47 48declare double @llvm.sqrt.f64(double)49 50