Displaying 1 result from an estimated 1 matches for "vmulpd".
Did you mean:
vmulps
2013 Jun 25
2
[LLVMdev] Contants generation - proposal
...iption:
In X86_64 target the Code Model is "Large". It means that address is 64-bit and IP-relative memory operand can't be used in this case.
(Because in IP-relative memory operand the displacement is 32-bit).
In order to load constant, we use 2 instructions.
movabsq $.LCPI0_0, %rcx
vmulpd (%rcx), %ymm0, %ymm0
It happens because .LCPI0_0 is in .rodata section and instruction itself is in .text.
If I put the constant in .text, the code will look much better:
vmulpd .LCPI0_0(%rip), %ymm0, %ymm0
(2) Proposal
Define one more Code Model, let's say "LargeNearConst", whic...