This patch adds the x, t and g modifiers for inline asm from GCC. These will print a vector register as xmm*, ymm* or zmm* respectively.
I also fixed register names with modifiers with inteldialect so they are no longer printed with a leading %.
Paths
| Differential D78977
[X86] Add x, t and g modifiers for inline asm ClosedPublic Authored by Amanieu on Apr 27 2020, 6:16 PM.
Details Summary This patch adds the x, t and g modifiers for inline asm from GCC. These will print a vector register as xmm*, ymm* or zmm* respectively. I also fixed register names with modifiers with inteldialect so they are no longer printed with a leading %.
Diff Detail
Event TimelineComment Actions Are these documented somewhere for gcc? I don't see them in the operand modifiers here https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html Comment Actions They are not mentioned in the GCC documentation, but are documented in this comment in the GCC code: If CODE is 'x', pretend the mode is V4SFmode. If CODE is 't', pretend the mode is V8SFmode. If CODE is 'g', pretend the mode is V16SFmode. We need these modifiers for the new inline assembly support in Rust. Comment Actions Thanks for the gcc link. How do they expect people to know they exist if they aren't documented? Anyway this patch, LGTM This revision is now accepted and ready to land.Apr 28 2020, 12:21 AM Closed by commit rGc5f7c039efe7: [X86] Add x, t and g modifiers for inline asm (authored by craig.topper). · Explain WhyApr 30 2020, 6:07 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 261412 llvm/lib/Target/X86/X86AsmPrinter.cpp
llvm/test/CodeGen/X86/asm-modifier2.ll
llvm/test/CodeGen/X86/inline-asm-bad-modifier.ll
|