[RISCV] Precommit testcase to show wrong result of make-compressible optimization
authorKito Cheng <kito.cheng@sifive.com>
Fri, 8 Jul 2022 09:00:53 +0000 (17:00 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Fri, 8 Jul 2022 09:01:22 +0000 (17:01 +0800)
commit7b9a3b9d6d98184d3e20c03fceefaac6dc0c3580
treeabc243703a5e05fc2dab9cb062053fda6d84d77f
parenta59c3eb2f37d4c8d0a8e48a698cec9314c7f4853
[RISCV] Precommit testcase to show wrong result of make-compressible optimization

Use following example to demo what happened now:

  li      a1, 1
  sd      a1, 800(a0)
  sd      a0, 808(a0) # Store base address into base + offset
  li      a1, 2
  sd      a1, 816(a0)

Current will optimizate into:

  li      a1, 1
  addi    a2, a0, 768
  sd      a1, 32(a2)
  sd      a2, 40(a2) # Wrong replacement for the source register.
  li      a1, 2
  sd      a1, 48(a2)

Reviewed By: asb

Differential Revision: https://reviews.llvm.org/D128875
llvm/test/CodeGen/RISCV/make-compressible-for-store-address.mir [new file with mode: 0644]