| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379 |
- // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
- SamplerState samp : register(s0);
- SamplerComparisonState sampcmp : register(s1);
- TextureCube<float4> cube : register(t0);
- TextureCubeArray<float4> cubeArray : register(t1);
- #define LOD 11
- #define CMP 0.5
- float4 main(float4 a : A) : SV_Target
- {
- uint status;
- float4 r = 0;
- ///////////////////////////////////////////////
- // Gather
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- r += cube.Gather(samp, a.xyz);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.Gather(samp, a.xyz+0.05, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- r += cubeArray.Gather(samp, a.xyzw);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.Gather(samp, a.xyzw+0.05, status); r += CheckAccessFullyMapped(status);
- a *= 1.125; // Prevent GatherRed from being optimized to equivalent Gather above
- ///////////////////////////////////////////////
- // GatherRed
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- r += cube.GatherRed(samp, a.xyz);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherRed(samp, a.xyz+0.05, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- r += cubeArray.GatherRed(samp, a.xyzw);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherRed(samp, a.xyzw+0.05, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherGreen
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1)
- r += cube.GatherGreen(samp, a.xyz);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherGreen(samp, a.xyz+0.05, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1)
- r += cubeArray.GatherGreen(samp, a.xyzw);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherGreen(samp, a.xyzw+0.05, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherBlue
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2)
- r += cube.GatherBlue(samp, a.xyz);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherBlue(samp, a.xyz+0.05, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2)
- r += cubeArray.GatherBlue(samp, a.xyzw);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherBlue(samp, a.xyzw+0.05, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherAlpha
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3)
- r += cube.GatherAlpha(samp, a.xyz);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherAlpha(samp, a.xyz+0.05, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3)
- r += cubeArray.GatherAlpha(samp, a.xyzw);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGather.f32(i32 73,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherAlpha(samp, a.xyzw+0.05, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherCmp
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- r += cube.GatherCmp(sampcmp, a.xyz, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherCmp(sampcmp, a.xyz+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- r += cubeArray.GatherCmp(sampcmp, a.xyzw, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherCmp(sampcmp, a.xyzw+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- a *= 1.125; // Prevent GatherCmpRed from being optimized to equivalent GatherCmp above
- ///////////////////////////////////////////////
- // GatherCmpRed
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- r += cube.GatherCmpRed(sampcmp, a.xyz, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherCmpRed(sampcmp, a.xyz+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- r += cubeArray.GatherCmpRed(sampcmp, a.xyzw, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 0
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherCmpRed(sampcmp, a.xyzw+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherCmpGreen
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1
- // CHECK-SAME: , float 5.000000e-01)
- r += cube.GatherCmpGreen(sampcmp, a.xyz, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherCmpGreen(sampcmp, a.xyz+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1
- // CHECK-SAME: , float 5.000000e-01)
- r += cubeArray.GatherCmpGreen(sampcmp, a.xyzw, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 1
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherCmpGreen(sampcmp, a.xyzw+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherCmpBlue
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2
- // CHECK-SAME: , float 5.000000e-01)
- r += cube.GatherCmpBlue(sampcmp, a.xyz, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherCmpBlue(sampcmp, a.xyz+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2
- // CHECK-SAME: , float 5.000000e-01)
- r += cubeArray.GatherCmpBlue(sampcmp, a.xyzw, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 2
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherCmpBlue(sampcmp, a.xyzw+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- ///////////////////////////////////////////////
- // GatherCmpAlpha
- ///////////////////////////////////////////////
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3
- // CHECK-SAME: , float 5.000000e-01)
- r += cube.GatherCmpAlpha(sampcmp, a.xyz, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float undef
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cube.GatherCmpAlpha(sampcmp, a.xyz+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- // TextureCubeArray
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3
- // CHECK-SAME: , float 5.000000e-01)
- r += cubeArray.GatherCmpAlpha(sampcmp, a.xyzw, CMP);
- // CHECK: call %dx.types.ResRet.f32 @dx.op.textureGatherCmp.f32(i32 74,
- // CHECK-SAME: , float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}, float %{{[^,]+}}
- // CHECK-SAME: , i32 undef, i32 undef
- // CHECK-SAME: , i32 3
- // CHECK-SAME: , float 5.000000e-01)
- // CHECK: extractvalue %dx.types.ResRet.f32 %{{[^,]+}}, 4
- // CHECK: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
- r += cubeArray.GatherCmpAlpha(sampcmp, a.xyzw+0.05, CMP, status); r += CheckAccessFullyMapped(status);
- return r;
- }
|