Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/test/CodeGen/X86/spill2reg_end_to_end_8bit.ll | ||
---|---|---|
71 | This code looks invalid. movb can't have a %eax destination |
llvm/test/CodeGen/X86/spill2reg_end_to_end_8bit.ll | ||
---|---|---|
71 | Yes, this patch needs more work. I need to update it. |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
9587 | I am trying to avoid the frequency throttling associated with using wide vector instructions. But I guess AVX should be safe ? Not sure about AVX512 though, won't it cause frequency drops if I use that instead? | |
llvm/test/CodeGen/X86/spill2reg_end_to_end_16bit.ll | ||
70–71 | XF86FixupBWInsts.cpp:208 checks whether the super reg %eax is live after movw D0(%rip), %ax. In the original code it is not live, but in our case it is because movd is reading from %eax. So it bails and does not replace the register. |
Removed the subregs from the movd instructions.
Also added simple mir tests for 8/16 bits.
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
9636 | Does it cause partial write whole read hazard? |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
9636 | It might, though I don't know what the overhead is. Do you know how I could Do you think it is worth adding a flag that disables it by default? |
Should use the AVX or AVX512 opcodes when available?
Are you limiting to VR128 regclass or do you allow VR128X with AVX512?