brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.4 KiB · fc89f58 Raw
200 lines · plain
1# RUN: llc -verify-machineinstrs -O0 -mtriple spirv-vulkan1.3-unknown -run-pass=spirv-prelegalizer-combiner %s -o - | FileCheck %s2# REQUIRES: asserts3---4name:            faceforward_instcombine_float5tracksRegLiveness: true6legalized: true7body:             |8  bb.1.entry:9    ; CHECK-LABEL: name: faceforward_instcombine_float10    ; CHECK-NOT: %9:_(s32) = G_FCONSTANT float 0.000000e+0011    ; CHECK-NOT: %8:_(s32) = G_FMUL %1:fid, %2:fid12    ; CHECK-NOT: %10:_(s1) = G_FCMP floatpred(olt), %8:_(s32), %9:_13    ; CHECK-NOT: %11:_(s32) = G_FNEG %0:fid14    ; CHECK-NOT: %12:id(s32) = G_SELECT %10:_(s1), %0:fid, %11:_15    ; CHECK: %10:id(s32) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %2(s32), %3(s32), %4(s32)16    ; CHECK: OpReturnValue %10(s32)17    %3:type(s64) = OpTypeFloat 3218    %5:type(s64) = OpTypeFunction %3:type(s64), %3:type(s64), %3:type(s64), %3:type(s64)19    OpName %0:fid(s32), 9720    OpName %1:fid(s32), 9821    OpName %2:fid(s32), 9922    %4:iid(s64) = OpFunction %3:type(s64), 0, %5:type(s64)23    %0:fid(s32) = OpFunctionParameter %3:type(s64)24    %1:fid(s32) = OpFunctionParameter %3:type(s64)25    %2:fid(s32) = OpFunctionParameter %3:type(s64)26    OpName %4:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 11627    %9:_(s32) = G_FCONSTANT float 0.000000e+0028    %8:_(s32) = G_FMUL %1:fid, %2:fid29    %10:_(s1) = G_FCMP floatpred(olt), %8:_(s32), %9:_30    %11:_(s32) = G_FNEG %0:fid31    %12:id(s32) = G_SELECT %10:_(s1), %0:fid, %11:_32    OpReturnValue %12:id(s32)33---34name:            faceforward_instcombine_float435tracksRegLiveness: true36legalized: true37body:             |38  bb.1.entry:39    ; CHECK-LABEL: name: faceforward_instcombine_float440    ; CHECK-NOT: %10:_(s32) = G_FCONSTANT float 0.000000e+0041    ; CHECK-NOT: %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)42    ; CHECK-NOT: %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_43    ; CHECK-NOT: %12:_(<4 x s32>) = G_FNEG %0:vfid44    ; CHECK-NOT: %13:id(<4 x s32>) = G_SELECT %11:_(s1), %0:vfid, %12:_45    ; CHECK: %11:id(<4 x s32>) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %3(<4 x s32>), %4(<4 x s32>), %5(<4 x s32>)46    ; CHECK: OpReturnValue %11(<4 x s32>)47    %4:type(s64) = OpTypeVector %3:type(s64), 448    %6:type(s64) = OpTypeFunction %4:type(s64), %4:type(s64), %4:type(s64), %4:type(s64)49    %3:type(s64) = OpTypeFloat 3250    OpName %0:vfid(<4 x s32>), 9751    OpName %1:vfid(<4 x s32>), 9852    OpName %2:vfid(<4 x s32>), 9953    %5:iid(s64) = OpFunction %4:type(s64), 0, %6:type(s64)54    %0:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)55    %1:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)56    %2:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)57    OpName %5:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 1342858    %10:_(s32) = G_FCONSTANT float 0.000000e+0059    %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)60    %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_61    %12:_(<4 x s32>) = G_FNEG %0:vfid62    %13:id(<4 x s32>) = G_SELECT %11:_(s1), %0:vfid, %12:_63    OpReturnValue %13:id(<4 x s32>)64---65name:            faceforward_instcombine_float_constants66tracksRegLiveness: true67legalized: true68body:             |69  bb.1.entry:70    ; CHECK-LABEL: name: faceforward_instcombine_float_constants71    ; CHECK-NOT: %9:_(s32) = G_FCONSTANT float 0.000000e+0072    ; CHECK-NOT: %13:_(s32) = G_FCONSTANT float -1.000000e+0073    ; CHECK-NOT: %8:_(s32) = G_FMUL %1:fid, %2:fid74    ; CHECK-NOT: %10:_(s1) = G_FCMP floatpred(olt), %8:_(s32), %9:_75    ; CHECK-NOT: %11:id(s32) = G_SELECT %10:_(s1), %12:_, %13:_76    ; CHECK: %7:_(s32) = G_FCONSTANT float 1.000000e+0077    ; CHECK: %11:id(s32) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %7(s32), %3(s32), %4(s32)78    ; CHECK: OpReturnValue %11(s32)79    %3:type(s64) = OpTypeFloat 3280    %5:type(s64) = OpTypeFunction %3:type(s64), %3:type(s64), %3:type(s64), %3:type(s64)81    OpName %0:fid(s32), 9782    OpName %1:fid(s32), 9883    OpName %2:fid(s32), 9984    %4:iid(s64) = OpFunction %3:type(s64), 0, %5:type(s64)85    %0:fid(s32) = OpFunctionParameter %3:type(s64)86    %1:fid(s32) = OpFunctionParameter %3:type(s64)87    %2:fid(s32) = OpFunctionParameter %3:type(s64)88    OpName %4:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 1868783476, 1635021678, 756644689    %9:_(s32) = G_FCONSTANT float 0.000000e+0090    %12:_(s32) = G_FCONSTANT float 1.000000e+0091    %13:_(s32) = G_FCONSTANT float -1.000000e+0092    %8:_(s32) = G_FMUL %1:fid, %2:fid93    %10:_(s1) = G_FCMP floatpred(olt), %8:_(s32), %9:_94    %11:id(s32) = G_SELECT %10:_(s1), %12:_, %13:_95    OpReturnValue %11:id(s32)96---97name:            faceforward_instcombine_float4_constants98tracksRegLiveness: true99legalized: true100body:             |101  bb.1.entry:102    ; CHECK-LABEL: name: faceforward_instcombine_float4_constants103    ; CHECK-NOT: %10:_(s32) = G_FCONSTANT float 0.000000e+00104    ; CHECK-NOT: %16:_(s32) = G_FCONSTANT float -1.000000e+00105    ; CHECK-NOT: %15:_(<4 x s32>) = G_BUILD_VECTOR %16:_(s32), %16:_(s32), %16:_(s32), %16:_(s32)106    ; CHECK-NOT: %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)107    ; CHECK-NOT: %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_108    ; CHECK-NOT: %12:id(<4 x s32>) = G_SELECT %11:_(s1), %13:_, %15:_109    ; CHECK: %8:_(s32) = G_FCONSTANT float 1.000000e+00110    ; CHECK: %9:_(<4 x s32>) = G_BUILD_VECTOR %8(s32), %8(s32), %8(s32), %8(s32)111    ; CHECK: %14:id(<4 x s32>) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %9(<4 x s32>), %4(<4 x s32>), %5(<4 x s32>)112    ; CHECK: OpReturnValue %14(<4 x s32>)113    %4:type(s64) = OpTypeVector %3:type(s64), 4114    %6:type(s64) = OpTypeFunction %4:type(s64), %4:type(s64), %4:type(s64), %4:type(s64)115    %3:type(s64) = OpTypeFloat 32116    OpName %0:vfid(<4 x s32>), 97117    OpName %1:vfid(<4 x s32>), 98118    OpName %2:vfid(<4 x s32>), 99119    %5:iid(s64) = OpFunction %4:type(s64), 0, %6:type(s64)120    %0:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)121    %1:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)122    %2:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)123    OpName %5:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 1667183732, 1953721967, 1937010273, 0124    %10:_(s32) = G_FCONSTANT float 0.000000e+00125    %14:_(s32) = G_FCONSTANT float 1.000000e+00126    %13:_(<4 x s32>) = G_BUILD_VECTOR %14:_(s32), %14:_(s32), %14:_(s32), %14:_(s32)127    %16:_(s32) = G_FCONSTANT float -1.000000e+00128    %15:_(<4 x s32>) = G_BUILD_VECTOR %16:_(s32), %16:_(s32), %16:_(s32), %16:_(s32)129    %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)130    %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_131    %12:id(<4 x s32>) = G_SELECT %11:_(s1), %13:_, %15:_132    OpReturnValue %12:id(<4 x s32>)133---134name:            faceforward_instcombine_float4_false_fmul135tracksRegLiveness: true136legalized: true137body:             |138  bb.1.entry:139    ; CHECK-LABEL: name: faceforward_instcombine_float4_false_fmul140    ; CHECK-NOT: %10:_(s32) = G_FCONSTANT float 0.000000e+00141    ; CHECK-NOT: %13:_(s32) = G_FCONSTANT float -1.000000e+00142    ; CHECK-NOT: %12:_(<4 x s32>) = G_BUILD_VECTOR %13:_(s32), %13:_(s32), %13:_(s32), %13:_(s32)143    ; CHECK-NOT: %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)144    ; CHECK-NOT: %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_145    ; CHECK-NOT: %14:_(<4 x s32>) = G_FMUL %0:vfid, %12:_146    ; CHECK-NOT: %15:id(<4 x s32>) = G_SELECT %11:_(s1), %0:vfid, %14:_147    ; CHECK: %13:id(<4 x s32>) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %3(<4 x s32>), %4(<4 x s32>), %5(<4 x s32>)148    ; CHECK: OpReturnValue %13(<4 x s32>)149    %4:type(s64) = OpTypeVector %3:type(s64), 4150    %6:type(s64) = OpTypeFunction %4:type(s64), %4:type(s64), %4:type(s64), %4:type(s64)151    %3:type(s64) = OpTypeFloat 32152    OpName %0:vfid(<4 x s32>), 97153    OpName %1:vfid(<4 x s32>), 98154    OpName %2:vfid(<4 x s32>), 99155    %5:iid(s64) = OpFunction %4:type(s64), 0, %6:type(s64)156    %0:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)157    %1:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)158    %2:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)159    OpName %5:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 1717515380, 1702063201, 1970103903, 108160    %10:_(s32) = G_FCONSTANT float 0.000000e+00161    %13:_(s32) = G_FCONSTANT float -1.000000e+00162    %12:_(<4 x s32>) = G_BUILD_VECTOR %13:_(s32), %13:_(s32), %13:_(s32), %13:_(s32)163    %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)164    %11:_(s1) = G_FCMP floatpred(olt), %9:_(s32), %10:_165    %14:_(<4 x s32>) = G_FMUL %0:vfid, %12:_166    %15:id(<4 x s32>) = G_SELECT %11:_(s1), %0:vfid, %14:_167    OpReturnValue %15:id(<4 x s32>)168---169name:            faceforward_instcombine_float4_ogt170tracksRegLiveness: true171legalized: true172body:             |173  bb.1.entry:174    ; CHECK-LABEL: name: faceforward_instcombine_float4175    ; CHECK-NOT: %10:_(s32) = G_FCONSTANT float 0.000000e+00176    ; CHECK-NOT: %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)177    ; CHECK-NOT: %11:_(s1) = G_FCMP floatpred(ogt), %10:_(s32), %9:_178    ; CHECK-NOT: %12:_(<4 x s32>) = G_FNEG %0:vfid179    ; CHECK-NOT: %13:id(<4 x s32>) =  G_SELECT %11:_(s1), %12:_, %0:vfid180    ; CHECK: %11:id(<4 x s32>) = G_INTRINSIC intrinsic(@llvm.spv.faceforward), %3(<4 x s32>), %4(<4 x s32>), %5(<4 x s32>)181    ; CHECK: OpReturnValue %11(<4 x s32>)182    %4:type(s64) = OpTypeVector %3:type(s64), 4183    %6:type(s64) = OpTypeFunction %4:type(s64), %4:type(s64), %4:type(s64), %4:type(s64)184    %3:type(s64) = OpTypeFloat 32185    OpName %0:vfid(<4 x s32>), 97186    OpName %1:vfid(<4 x s32>), 98187    OpName %2:vfid(<4 x s32>), 99188    %5:iid(s64) = OpFunction %4:type(s64), 0, %6:type(s64)189    %0:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)190    %1:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)191    %2:vfid(<4 x s32>) = OpFunctionParameter %4:type(s64)192    OpName %5:iid(s64), 1701011814, 2003988326, 1600418401, 1953721961, 1651339107, 1600482921, 1634692198, 1868510324, 29799193    %10:_(s32) = G_FCONSTANT float 0.000000e+00194    %9:_(s32) = G_INTRINSIC intrinsic(@llvm.spv.fdot), %1:vfid(<4 x s32>), %2:vfid(<4 x s32>)195    %11:_(s1) = G_FCMP floatpred(ogt), %10:_(s32), %9:_196    %12:_(<4 x s32>) = G_FNEG %0:vfid197    %13:id(<4 x s32>) = G_SELECT %11:_(s1), %12:_, %0:vfid198    OpReturnValue %13:id(<4 x s32>)199 200