[PATCH] D97208: [X86] Always use rip-relative addressing on 64-bit when rematerializing all zeros/ones registers using a folded load.

Pengfei Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 05:15:08 PST 2021


pengfei added a comment.

In D97208#2581460 <https://reviews.llvm.org/D97208#2581460>, @pengfei wrote:

>>> None of our lit tests are affected by this for some reason. Maybe the update_llc_test_checks.py is too aggressive with regular expressions?
>>
>> Confirmed.
>>
>> `; CHECK-NEXT:    ucomisd {{\.LCPI.*}}, %xmm0`
>>
>> `.*` hides the `(%rip)` difference.
>
> It's not true. I looked at the code in `llvm/utils/UpdateTestChecks/asm.py`, the script can differentiate the rip from the pure address, e.g
>
>   cd llvm/utils/UpdateTestChecks/
>   python
>   >>> from UpdateTestChecks import asm
>   >>> class T():
>   ...   x86_scrub_rip = True
>   ...
>   >>> asm.scrub_asm_x86('ucomisd .LCPI0_0(%rip), %xmm0', T)
>   'ucomisd {{.*}}(%rip), %xmm0'
>   >>> asm.scrub_asm_x86('ucomisd .LCPI0_0, %xmm0', T)
>   'ucomisd {{\\.LCPI.*}}, %xmm0'
>
> So the `update_llc_test_checks.py` isn't too aggressive to eliminate the difference.
> I also check a test `llvm/test/CodeGen/X86/vec_reassociate.ll`, in which we can see the differences between X86 and X64.

Oh, I misunderstood @MaskRay 's comments. It's true `{{\\.LCPI.*}}` hides the difference, but we can regenerate the tests by the script.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97208/new/

https://reviews.llvm.org/D97208



More information about the llvm-commits mailing list