[PATCH] D70176: [Codegen][ARM] Add addressing modes from masked loads and stores

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 21 04:52:15 PST 2019


dmgreen added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:387
+      setIndexedMaskedLoadAction(im, VT, Legal);
+      setIndexedMaskedStoreAction(im, VT, Legal);
+    }
----------------
samparker wrote:
> Why not v4i32 and floats too?
This is "extending masked post-inc stores", so is only the extended types that will be extended. The others are above.

We might well want to "zero extend" fp16s into a wider register at some point, especially if we are converting them to floats, but thats not a job for here.


================
Comment at: llvm/lib/Target/ARM/ARMInstrMVE.td:5312
+                                          PatFrag StoreKind, int shift>
+  : Pat<(StoreKind (Ty MQPR:$Rt), tGPR:$Rn, t2am_imm7_offset<shift>:$addr, VCCR:$pred),
+        (Opcode MQPR:$Rt, tGPR:$Rn, t2am_imm7_offset<shift>:$addr, (i32 1), VCCR:$pred)>;
----------------
samparker wrote:
> I don't think we shouldn't be restricting the base to a T1 register.
Ooof, the double negatives! This uses the same as the MVE_vector_offset_store_typed, which I think is OK for "normal" loads/stores. It's the extending loads/stores below that might be the problem (and don't really look right to me).

I'll make it the same a non-masked for the moment, and try to fixup what doesn't look right in another commit.


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

https://reviews.llvm.org/D70176





More information about the llvm-commits mailing list