By directly emitting the constants as a constant pool load we seem to avoid the build_vector/extract_subvector combines that resulted in the duplicate loads we had before.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
19175 | Could we avoid all this by using X86ISD::FOR instead? |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
19175 | Turns out - no we can't, but this still seems a hacky way to fix this. |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
19175 | I admit this is hacky. But its not the only place we are directly emitting loads pool operations during int->fp conversion. See also LowerUINT_TO_FP_i64, LowerUINT_TO_FP, and SelectionDAGLegalize::ExpandLegalINT_TO_FP |
Could we avoid all this by using X86ISD::FOR instead?