[llvm] [AMDGPU][MC] Implement fft and rotate modes for ds_swizzle_b32 (PR #108064)
Jun Wang via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 24 11:38:19 PDT 2024
================
@@ -8141,6 +8138,54 @@ AMDGPUAsmParser::parseSwizzleBitmaskPerm(int64_t &Imm) {
return true;
}
+bool AMDGPUAsmParser::parseSwizzleFFT(int64_t &Imm) {
+ using namespace llvm::AMDGPU::Swizzle;
+
+ if (!AMDGPU::isGFX9Plus(getSTI())) {
+ Error(getLoc(), "FFT mode swizzle not supported on this GPU");
+ return false;
+ }
+
+ int64_t Swizzle;
+ SMLoc Loc;
+ if (!parseSwizzleOperand(Swizzle, 0, FFT_SWIZZLE_MAX,
+ "FFT swizzle must be in the interval [0," +
+ Twine(FFT_SWIZZLE_MAX) + Twine(']'),
+ Loc))
+ return false;
+
+ Imm = FFT_MODE_ENC | Swizzle;
+ return true;
+}
+
+bool AMDGPUAsmParser::parseSwizzleRotate(int64_t &Imm) {
+ using namespace llvm::AMDGPU::Swizzle;
+
+ if (!AMDGPU::isGFX9Plus(getSTI())) {
----------------
jwanggit86 wrote:
Based on the ISA doc, these two modes are not supported on GFX8.
https://github.com/llvm/llvm-project/pull/108064
More information about the llvm-commits
mailing list