Pre-GFX10 A16 modifier would imply G16. From GFX10 and onward there are
separate instructions for 16bit gradients. This fixes the condition for
selecting G16 opcodes. Also stop adding G16 flag to instructions that do not
use gradients for GFX10 onward.
Details
Details
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
60,080 ms | x64 debian > libFuzzer.libFuzzer::fuzzer-leak.test | |
60,130 ms | x64 debian > libFuzzer.libFuzzer::minimize_crash.test |
Event Timeline
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | ||
---|---|---|
4905 | This simplifies to GradTy == S16 && (!ST.hasG16() || BaseOpcode->Gradients) - but perhaps your way is more readable. | |
llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.a16.dim.ll | ||
860 | How would these new tests fail without your patch? Would they fail machine verification? |
llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.a16.dim.ll | ||
---|---|---|
860 | GlobalISel was selecting non g16 variant without a crash or fail. There were no test cases with a16 and g16. |
This simplifies to GradTy == S16 && (!ST.hasG16() || BaseOpcode->Gradients) - but perhaps your way is more readable.