[PATCH] D108200: [llvm][sve] Lowering for VLS masked extending loads

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 17 04:30:07 PDT 2021


paulwalker-arm added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll:501-502
+; VBITS_GE_512: ptrue [[PG0:p[0-9]+]].h, vl32
+; VBITS_GE_512-NEXT: ld1b { [[Z0:z[0-9]+]].h }, p0/z, [x0]
+; VBITS_GE_512-NEXT: ld1h { [[Z1:z[0-9]+]].h }, p0/z, [x1]
+; VBITS_GE_512-NEXT: cmpeq [[PG1:p[0-9]+]].h, [[PG0]]/z, [[Z0]].h, [[Z1]].h
----------------
Why is `p0` hardcoded? Should this be `[[PG0]]`?

Also I think these should be `VBITS_GE_512-DAG` as the order of the loads can be switched,


================
Comment at: llvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll:503
+; VBITS_GE_512-NEXT: ld1h { [[Z1:z[0-9]+]].h }, p0/z, [x1]
+; VBITS_GE_512-NEXT: cmpeq [[PG1:p[0-9]+]].h, [[PG0]]/z, [[Z0]].h, [[Z1]].h
+; VBITS_GE_512-NEXT: ld1sb { [[Z0]].h }, [[PG3]]/z, [x0]
----------------
This sets `PG` but no following instructions use it.


================
Comment at: llvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll:504-505
+; VBITS_GE_512-NEXT: cmpeq [[PG1:p[0-9]+]].h, [[PG0]]/z, [[Z0]].h, [[Z1]].h
+; VBITS_GE_512-NEXT: ld1sb { [[Z0]].h }, [[PG3]]/z, [x0]
+; VBITS_GE_512-NEXT: st1h { [[Z0]].h }, [[PG2]], [x8]
+; VBITS_GE_512-NEXT: ret
----------------
`PG3` and `PG2` are not set within this function.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108200



More information about the llvm-commits mailing list