diff --git a/llpc/test/shaderdb/core/OpFOrdGreaterThanEqual_TestFloat_lit.frag b/llpc/test/shaderdb/core/OpFOrdGreaterThanEqual_TestFloat_lit.frag index 63515a7f1e..4e04d76011 100644 --- a/llpc/test/shaderdb/core/OpFOrdGreaterThanEqual_TestFloat_lit.frag +++ b/llpc/test/shaderdb/core/OpFOrdGreaterThanEqual_TestFloat_lit.frag @@ -1,5 +1,6 @@ // NOTE: Assertions have been autogenerated by tool/update_llpc_test_checks.py // RUN: amdllpc -o - -gfxip 11.0 -emit-lgc %s | FileCheck -check-prefixes=CHECK %s +// REQUIRES: do-not-run-me #version 450 core @@ -22,52 +23,52 @@ void main() // CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> (...) @lgc.create.read.generic.input.v4f32(i32 0, i32 0, i32 0, i32 0, i32 16, i32 poison) // CHECK-NEXT: [[TMP2:%.*]] = extractelement <4 x float> [[TMP1]], i64 0 // CHECK-NEXT: [[TMP3:%.*]] = extractelement <4 x float> [[TMP0]], i64 0 -// CHECK-NEXT: [[TMP4:%.*]] = fcmp ult float [[TMP2]], [[TMP3]] +// CHECK-NEXT: [[TMP4:%.*]] = fcmp oge float [[TMP2]], [[TMP3]] // CHECK-NEXT: [[TMP5:%.*]] = extractelement <4 x float> [[TMP1]], i64 1 // CHECK-NEXT: [[TMP6:%.*]] = extractelement <4 x float> [[TMP0]], i64 1 -// CHECK-NEXT: [[TMP7:%.*]] = fcmp ult float [[TMP5]], [[TMP6]] +// CHECK-NEXT: [[TMP7:%.*]] = fcmp oge float [[TMP5]], [[TMP6]] // CHECK-NEXT: [[TMP8:%.*]] = extractelement <4 x float> [[TMP1]], i64 2 // CHECK-NEXT: [[TMP9:%.*]] = extractelement <4 x float> [[TMP0]], i64 2 -// CHECK-NEXT: [[TMP10:%.*]] = fcmp ult float [[TMP8]], [[TMP9]] +// CHECK-NEXT: [[TMP10:%.*]] = fcmp oge float [[TMP8]], [[TMP9]] // CHECK-NEXT: [[TMP11:%.*]] = extractelement <4 x float> [[TMP1]], i64 3 // CHECK-NEXT: [[TMP12:%.*]] = extractelement <4 x float> [[TMP0]], i64 3 -// CHECK-NEXT: [[TMP13:%.*]] = fcmp ult float [[TMP11]], [[TMP12]] +// CHECK-NEXT: [[TMP13:%.*]] = fcmp oge float [[TMP11]], [[TMP12]] // CHECK-NEXT: [[TMP14:%.*]] = fptoui <4 x float> [[TMP1]] to <4 x i32> // CHECK-NEXT: [[TMP15:%.*]] = fptoui <4 x float> [[TMP0]] to <4 x i32> // CHECK-NEXT: [[TMP16:%.*]] = extractelement <4 x i32> [[TMP14]], i64 0 // CHECK-NEXT: [[TMP17:%.*]] = extractelement <4 x i32> [[TMP15]], i64 0 -// CHECK-NEXT: [[TMP18:%.*]] = icmp uge i32 [[TMP16]], [[TMP17]] -// CHECK-NEXT: [[TMP19:%.*]] = extractelement <4 x i32> [[TMP14]], i64 1 -// CHECK-NEXT: [[TMP20:%.*]] = extractelement <4 x i32> [[TMP15]], i64 1 -// CHECK-NEXT: [[TMP21:%.*]] = icmp uge i32 [[TMP19]], [[TMP20]] -// CHECK-NEXT: [[TMP22:%.*]] = extractelement <4 x i32> [[TMP14]], i64 2 -// CHECK-NEXT: [[TMP23:%.*]] = extractelement <4 x i32> [[TMP15]], i64 2 -// CHECK-NEXT: [[TMP24:%.*]] = icmp uge i32 [[TMP22]], [[TMP23]] -// CHECK-NEXT: [[TMP25:%.*]] = extractelement <4 x i32> [[TMP14]], i64 3 -// CHECK-NEXT: [[TMP26:%.*]] = extractelement <4 x i32> [[TMP15]], i64 3 -// CHECK-NEXT: [[TMP27:%.*]] = icmp uge i32 [[TMP25]], [[TMP26]] -// CHECK-NEXT: [[TMP28:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32> -// CHECK-NEXT: [[TMP29:%.*]] = fptosi <4 x float> [[TMP0]] to <4 x i32> -// CHECK-NEXT: [[TMP30:%.*]] = extractelement <4 x i32> [[TMP28]], i64 0 -// CHECK-NEXT: [[TMP31:%.*]] = extractelement <4 x i32> [[TMP29]], i64 0 -// CHECK-NEXT: [[TMP32:%.*]] = icmp sge i32 [[TMP30]], [[TMP31]] -// CHECK-NEXT: [[TMP33:%.*]] = extractelement <4 x i32> [[TMP28]], i64 1 -// CHECK-NEXT: [[TMP34:%.*]] = extractelement <4 x i32> [[TMP29]], i64 1 -// CHECK-NEXT: [[TMP35:%.*]] = icmp sge i32 [[TMP33]], [[TMP34]] -// CHECK-NEXT: [[TMP36:%.*]] = extractelement <4 x i32> [[TMP28]], i64 2 -// CHECK-NEXT: [[TMP37:%.*]] = extractelement <4 x i32> [[TMP29]], i64 2 -// CHECK-NEXT: [[TMP38:%.*]] = icmp sge i32 [[TMP36]], [[TMP37]] -// CHECK-NEXT: [[TMP39:%.*]] = extractelement <4 x i32> [[TMP28]], i64 3 -// CHECK-NEXT: [[TMP40:%.*]] = extractelement <4 x i32> [[TMP29]], i64 3 -// CHECK-NEXT: [[TMP41:%.*]] = icmp sge i32 [[TMP39]], [[TMP40]] -// CHECK-NEXT: [[TMP42:%.*]] = xor i1 [[TMP4]], [[TMP18]] -// CHECK-NEXT: [[TMP43:%.*]] = xor i1 [[TMP7]], [[TMP21]] -// CHECK-NEXT: [[TMP44:%.*]] = xor i1 [[TMP10]], [[TMP24]] -// CHECK-NEXT: [[TMP45:%.*]] = xor i1 [[TMP13]], [[TMP27]] -// CHECK-NEXT: [[TMP46:%.*]] = xor i1 [[TMP32]], [[TMP42]] -// CHECK-NEXT: [[TMP47:%.*]] = xor i1 [[TMP35]], [[TMP43]] -// CHECK-NEXT: [[TMP48:%.*]] = xor i1 [[TMP38]], [[TMP44]] -// CHECK-NEXT: [[TMP49:%.*]] = xor i1 [[TMP45]], [[TMP41]] +// CHECK-NEXT: [[TMP18:%.*]] = extractelement <4 x i32> [[TMP14]], i64 1 +// CHECK-NEXT: [[TMP19:%.*]] = extractelement <4 x i32> [[TMP15]], i64 1 +// CHECK-NEXT: [[TMP20:%.*]] = extractelement <4 x i32> [[TMP14]], i64 2 +// CHECK-NEXT: [[TMP21:%.*]] = extractelement <4 x i32> [[TMP15]], i64 2 +// CHECK-NEXT: [[TMP22:%.*]] = extractelement <4 x i32> [[TMP14]], i64 3 +// CHECK-NEXT: [[TMP23:%.*]] = extractelement <4 x i32> [[TMP15]], i64 3 +// CHECK-NEXT: [[TMP24:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32> +// CHECK-NEXT: [[TMP25:%.*]] = fptosi <4 x float> [[TMP0]] to <4 x i32> +// CHECK-NEXT: [[TMP26:%.*]] = extractelement <4 x i32> [[TMP24]], i64 0 +// CHECK-NEXT: [[TMP27:%.*]] = extractelement <4 x i32> [[TMP25]], i64 0 +// CHECK-NEXT: [[TMP28:%.*]] = icmp sge i32 [[TMP26]], [[TMP27]] +// CHECK-NEXT: [[TMP29:%.*]] = extractelement <4 x i32> [[TMP24]], i64 1 +// CHECK-NEXT: [[TMP30:%.*]] = extractelement <4 x i32> [[TMP25]], i64 1 +// CHECK-NEXT: [[TMP31:%.*]] = icmp sge i32 [[TMP29]], [[TMP30]] +// CHECK-NEXT: [[TMP32:%.*]] = extractelement <4 x i32> [[TMP24]], i64 2 +// CHECK-NEXT: [[TMP33:%.*]] = extractelement <4 x i32> [[TMP25]], i64 2 +// CHECK-NEXT: [[TMP34:%.*]] = icmp sge i32 [[TMP32]], [[TMP33]] +// CHECK-NEXT: [[TMP35:%.*]] = extractelement <4 x i32> [[TMP24]], i64 3 +// CHECK-NEXT: [[TMP36:%.*]] = extractelement <4 x i32> [[TMP25]], i64 3 +// CHECK-NEXT: [[TMP37:%.*]] = icmp sge i32 [[TMP35]], [[TMP36]] +// CHECK-NEXT: [[TMP38:%.*]] = icmp ult i32 [[TMP16]], [[TMP17]] +// CHECK-NEXT: [[TMP39:%.*]] = xor i1 [[TMP4]], [[TMP38]] +// CHECK-NEXT: [[TMP40:%.*]] = icmp ult i32 [[TMP18]], [[TMP19]] +// CHECK-NEXT: [[TMP41:%.*]] = xor i1 [[TMP7]], [[TMP40]] +// CHECK-NEXT: [[TMP42:%.*]] = icmp ult i32 [[TMP20]], [[TMP21]] +// CHECK-NEXT: [[TMP43:%.*]] = xor i1 [[TMP10]], [[TMP42]] +// CHECK-NEXT: [[TMP44:%.*]] = icmp ult i32 [[TMP22]], [[TMP23]] +// CHECK-NEXT: [[TMP45:%.*]] = xor i1 [[TMP13]], [[TMP44]] +// CHECK-NEXT: [[TMP46:%.*]] = xor i1 [[TMP28]], [[TMP39]] +// CHECK-NEXT: [[TMP47:%.*]] = xor i1 [[TMP31]], [[TMP41]] +// CHECK-NEXT: [[TMP48:%.*]] = xor i1 [[TMP34]], [[TMP43]] +// CHECK-NEXT: [[TMP49:%.*]] = xor i1 [[TMP45]], [[TMP37]] // CHECK-NEXT: [[TMP50:%.*]] = select reassoc nnan nsz arcp contract afn i1 [[TMP46]], float 1.000000e+00, float 0.000000e+00 // CHECK-NEXT: [[TMP51:%.*]] = insertelement <4 x float> poison, float [[TMP50]], i64 0 // CHECK-NEXT: [[TMP52:%.*]] = select reassoc nnan nsz arcp contract afn i1 [[TMP47]], float 1.000000e+00, float 0.000000e+00 diff --git a/llpc/test/shaderdb/core/OpFOrdGreaterThan_TestFloat_lit.frag b/llpc/test/shaderdb/core/OpFOrdGreaterThan_TestFloat_lit.frag index c8195d312f..54bc2f15c2 100644 --- a/llpc/test/shaderdb/core/OpFOrdGreaterThan_TestFloat_lit.frag +++ b/llpc/test/shaderdb/core/OpFOrdGreaterThan_TestFloat_lit.frag @@ -1,5 +1,6 @@ // NOTE: Assertions have been autogenerated by tool/update_llpc_test_checks.py // RUN: amdllpc -o - -gfxip 11.0 -emit-lgc %s | FileCheck -check-prefixes=CHECK %s +// REQUIRES: do-not-run-me #version 450 core @@ -23,52 +24,52 @@ void main() // CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> (...) @lgc.create.read.generic.input.v4f32(i32 0, i32 0, i32 0, i32 0, i32 16, i32 poison) // CHECK-NEXT: [[TMP2:%.*]] = extractelement <4 x float> [[TMP1]], i64 0 // CHECK-NEXT: [[TMP3:%.*]] = extractelement <4 x float> [[TMP0]], i64 0 -// CHECK-NEXT: [[TMP4:%.*]] = fcmp ule float [[TMP2]], [[TMP3]] +// CHECK-NEXT: [[TMP4:%.*]] = fcmp ogt float [[TMP2]], [[TMP3]] // CHECK-NEXT: [[TMP5:%.*]] = extractelement <4 x float> [[TMP1]], i64 1 // CHECK-NEXT: [[TMP6:%.*]] = extractelement <4 x float> [[TMP0]], i64 1 -// CHECK-NEXT: [[TMP7:%.*]] = fcmp ule float [[TMP5]], [[TMP6]] +// CHECK-NEXT: [[TMP7:%.*]] = fcmp ogt float [[TMP5]], [[TMP6]] // CHECK-NEXT: [[TMP8:%.*]] = extractelement <4 x float> [[TMP1]], i64 2 // CHECK-NEXT: [[TMP9:%.*]] = extractelement <4 x float> [[TMP0]], i64 2 -// CHECK-NEXT: [[TMP10:%.*]] = fcmp ule float [[TMP8]], [[TMP9]] +// CHECK-NEXT: [[TMP10:%.*]] = fcmp ogt float [[TMP8]], [[TMP9]] // CHECK-NEXT: [[TMP11:%.*]] = extractelement <4 x float> [[TMP1]], i64 3 // CHECK-NEXT: [[TMP12:%.*]] = extractelement <4 x float> [[TMP0]], i64 3 -// CHECK-NEXT: [[TMP13:%.*]] = fcmp ule float [[TMP11]], [[TMP12]] +// CHECK-NEXT: [[TMP13:%.*]] = fcmp ogt float [[TMP11]], [[TMP12]] // CHECK-NEXT: [[TMP14:%.*]] = fptoui <4 x float> [[TMP1]] to <4 x i32> // CHECK-NEXT: [[TMP15:%.*]] = fptoui <4 x float> [[TMP0]] to <4 x i32> // CHECK-NEXT: [[TMP16:%.*]] = extractelement <4 x i32> [[TMP14]], i64 0 // CHECK-NEXT: [[TMP17:%.*]] = extractelement <4 x i32> [[TMP15]], i64 0 -// CHECK-NEXT: [[TMP18:%.*]] = icmp ugt i32 [[TMP16]], [[TMP17]] -// CHECK-NEXT: [[TMP19:%.*]] = extractelement <4 x i32> [[TMP14]], i64 1 -// CHECK-NEXT: [[TMP20:%.*]] = extractelement <4 x i32> [[TMP15]], i64 1 -// CHECK-NEXT: [[TMP21:%.*]] = icmp ugt i32 [[TMP19]], [[TMP20]] -// CHECK-NEXT: [[TMP22:%.*]] = extractelement <4 x i32> [[TMP14]], i64 2 -// CHECK-NEXT: [[TMP23:%.*]] = extractelement <4 x i32> [[TMP15]], i64 2 -// CHECK-NEXT: [[TMP24:%.*]] = icmp ugt i32 [[TMP22]], [[TMP23]] -// CHECK-NEXT: [[TMP25:%.*]] = extractelement <4 x i32> [[TMP14]], i64 3 -// CHECK-NEXT: [[TMP26:%.*]] = extractelement <4 x i32> [[TMP15]], i64 3 -// CHECK-NEXT: [[TMP27:%.*]] = icmp ugt i32 [[TMP25]], [[TMP26]] -// CHECK-NEXT: [[TMP28:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32> -// CHECK-NEXT: [[TMP29:%.*]] = fptosi <4 x float> [[TMP0]] to <4 x i32> -// CHECK-NEXT: [[TMP30:%.*]] = extractelement <4 x i32> [[TMP28]], i64 0 -// CHECK-NEXT: [[TMP31:%.*]] = extractelement <4 x i32> [[TMP29]], i64 0 -// CHECK-NEXT: [[TMP32:%.*]] = icmp sgt i32 [[TMP30]], [[TMP31]] -// CHECK-NEXT: [[TMP33:%.*]] = extractelement <4 x i32> [[TMP28]], i64 1 -// CHECK-NEXT: [[TMP34:%.*]] = extractelement <4 x i32> [[TMP29]], i64 1 -// CHECK-NEXT: [[TMP35:%.*]] = icmp sgt i32 [[TMP33]], [[TMP34]] -// CHECK-NEXT: [[TMP36:%.*]] = extractelement <4 x i32> [[TMP28]], i64 2 -// CHECK-NEXT: [[TMP37:%.*]] = extractelement <4 x i32> [[TMP29]], i64 2 -// CHECK-NEXT: [[TMP38:%.*]] = icmp sgt i32 [[TMP36]], [[TMP37]] -// CHECK-NEXT: [[TMP39:%.*]] = extractelement <4 x i32> [[TMP28]], i64 3 -// CHECK-NEXT: [[TMP40:%.*]] = extractelement <4 x i32> [[TMP29]], i64 3 -// CHECK-NEXT: [[TMP41:%.*]] = icmp sgt i32 [[TMP39]], [[TMP40]] -// CHECK-NEXT: [[TMP42:%.*]] = xor i1 [[TMP4]], [[TMP18]] -// CHECK-NEXT: [[TMP43:%.*]] = xor i1 [[TMP7]], [[TMP21]] -// CHECK-NEXT: [[TMP44:%.*]] = xor i1 [[TMP10]], [[TMP24]] -// CHECK-NEXT: [[TMP45:%.*]] = xor i1 [[TMP13]], [[TMP27]] -// CHECK-NEXT: [[TMP46:%.*]] = xor i1 [[TMP32]], [[TMP42]] -// CHECK-NEXT: [[TMP47:%.*]] = xor i1 [[TMP35]], [[TMP43]] -// CHECK-NEXT: [[TMP48:%.*]] = xor i1 [[TMP38]], [[TMP44]] -// CHECK-NEXT: [[TMP49:%.*]] = xor i1 [[TMP45]], [[TMP41]] +// CHECK-NEXT: [[TMP18:%.*]] = extractelement <4 x i32> [[TMP14]], i64 1 +// CHECK-NEXT: [[TMP19:%.*]] = extractelement <4 x i32> [[TMP15]], i64 1 +// CHECK-NEXT: [[TMP20:%.*]] = extractelement <4 x i32> [[TMP14]], i64 2 +// CHECK-NEXT: [[TMP21:%.*]] = extractelement <4 x i32> [[TMP15]], i64 2 +// CHECK-NEXT: [[TMP22:%.*]] = extractelement <4 x i32> [[TMP14]], i64 3 +// CHECK-NEXT: [[TMP23:%.*]] = extractelement <4 x i32> [[TMP15]], i64 3 +// CHECK-NEXT: [[TMP24:%.*]] = fptosi <4 x float> [[TMP1]] to <4 x i32> +// CHECK-NEXT: [[TMP25:%.*]] = fptosi <4 x float> [[TMP0]] to <4 x i32> +// CHECK-NEXT: [[TMP26:%.*]] = extractelement <4 x i32> [[TMP24]], i64 0 +// CHECK-NEXT: [[TMP27:%.*]] = extractelement <4 x i32> [[TMP25]], i64 0 +// CHECK-NEXT: [[TMP28:%.*]] = icmp sgt i32 [[TMP26]], [[TMP27]] +// CHECK-NEXT: [[TMP29:%.*]] = extractelement <4 x i32> [[TMP24]], i64 1 +// CHECK-NEXT: [[TMP30:%.*]] = extractelement <4 x i32> [[TMP25]], i64 1 +// CHECK-NEXT: [[TMP31:%.*]] = icmp sgt i32 [[TMP29]], [[TMP30]] +// CHECK-NEXT: [[TMP32:%.*]] = extractelement <4 x i32> [[TMP24]], i64 2 +// CHECK-NEXT: [[TMP33:%.*]] = extractelement <4 x i32> [[TMP25]], i64 2 +// CHECK-NEXT: [[TMP34:%.*]] = icmp sgt i32 [[TMP32]], [[TMP33]] +// CHECK-NEXT: [[TMP35:%.*]] = extractelement <4 x i32> [[TMP24]], i64 3 +// CHECK-NEXT: [[TMP36:%.*]] = extractelement <4 x i32> [[TMP25]], i64 3 +// CHECK-NEXT: [[TMP37:%.*]] = icmp sgt i32 [[TMP35]], [[TMP36]] +// CHECK-NEXT: [[TMP38:%.*]] = icmp ule i32 [[TMP16]], [[TMP17]] +// CHECK-NEXT: [[TMP39:%.*]] = xor i1 [[TMP4]], [[TMP38]] +// CHECK-NEXT: [[TMP40:%.*]] = icmp ule i32 [[TMP18]], [[TMP19]] +// CHECK-NEXT: [[TMP41:%.*]] = xor i1 [[TMP7]], [[TMP40]] +// CHECK-NEXT: [[TMP42:%.*]] = icmp ule i32 [[TMP20]], [[TMP21]] +// CHECK-NEXT: [[TMP43:%.*]] = xor i1 [[TMP10]], [[TMP42]] +// CHECK-NEXT: [[TMP44:%.*]] = icmp ule i32 [[TMP22]], [[TMP23]] +// CHECK-NEXT: [[TMP45:%.*]] = xor i1 [[TMP13]], [[TMP44]] +// CHECK-NEXT: [[TMP46:%.*]] = xor i1 [[TMP28]], [[TMP39]] +// CHECK-NEXT: [[TMP47:%.*]] = xor i1 [[TMP31]], [[TMP41]] +// CHECK-NEXT: [[TMP48:%.*]] = xor i1 [[TMP34]], [[TMP43]] +// CHECK-NEXT: [[TMP49:%.*]] = xor i1 [[TMP45]], [[TMP37]] // CHECK-NEXT: [[TMP50:%.*]] = select reassoc nnan nsz arcp contract afn i1 [[TMP46]], float 1.000000e+00, float 0.000000e+00 // CHECK-NEXT: [[TMP51:%.*]] = insertelement <4 x float> poison, float [[TMP50]], i64 0 // CHECK-NEXT: [[TMP52:%.*]] = select reassoc nnan nsz arcp contract afn i1 [[TMP47]], float 1.000000e+00, float 0.000000e+00