- Support pointer type as function argumnet and return value
- G_STORE/G_LOAD - set legal action for i8/i16/i32/i64/f32/f64/vec128
- RegisterBank - support typeless operations like G_STORE/G_LOAD, for scalar use GPR bank.
- Support instruction selection for G_LOAD/G_STORE
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Hi Igor,
For G_LOAD, Fast and Greedy mode choose the same RegisterBank mapping (GprRegBank ) for the G_GLOAD + G_FADD , can't get rid of cross register bank copy GprRegBank->VecRegBank.
Yeah, we are aware of this problem. Greedy is not smart enough right now to do the right thing. I hope to fix that in the coming weeks.
I haven't looked at the patch, but is it something you worked around here?
Cheers,
-Quentin
Comment Actions
Hi,
Could you commit the unrelated changes separately (e.g. the space changes and the include reordering)?
Other than that, LGTM.
lib/Target/X86/X86InstructionSelector.cpp | ||
---|---|---|
321 ↗ | (On Diff #91846) | Why not else if, like the others? |
test/CodeGen/X86/GlobalISel/x86_64-instructionselect.mir | ||
659 ↗ | (On Diff #91846) | Can you also add testcases for s32 and s64 living in the vecr? |