[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
Thu Sep 12 15:18:03 PDT 2024
================
@@ -1503,8 +1503,21 @@ void AMDGPUInstPrinter::printSwizzle(const MCInst *MI, unsigned OpNo,
O << " offset:";
- if ((Imm & QUAD_PERM_ENC_MASK) == QUAD_PERM_ENC) {
+ // Rotate and FFT modes
+ if (Imm >= ROTATE_MODE_LO && AMDGPU::isGFX9Plus(STI)) {
+ if (Imm >= FFT_MODE_LO) {
+ O << "swizzle(" << IdSymbolic[ID_FFT] << "," << (Imm & FFT_SWIZZLE_MASK)
+ << ")";
+ } else if (Imm >= ROTATE_MODE_LO) {
+ O << "swizzle(" << IdSymbolic[ID_ROTATE] << ","
+ << ((Imm >> ROTATE_DIR_SHIFT) & ROTATE_DIR_MASK) << ","
+ << ((Imm >> ROTATE_SIZE_SHIFT) & ROTATE_SIZE_MASK) << ")";
----------------
jwanggit86 wrote:
Done.
https://github.com/llvm/llvm-project/pull/108064
More information about the llvm-commits
mailing list