Fwd: [PATCH] Implement the newly added ACLE functions for ld1 and st1 with 2/3/4 vectors.

Tim Northover t.p.northover at gmail.com
Thu Nov 14 11:09:57 PST 2013


llvm-commits doesn't seem to be on the CC for this one. Forwarding...


---------- Forwarded message ----------
From: Tim Northover <t.p.northover at gmail.com>
Date: 14 November 2013 11:09
Subject: Re: [PATCH] Implement the newly added ACLE functions for ld1
and st1 with 2/3/4 vectors.
To: t.p.northover at gmail.com, haoliuts at gmail.com



  Hi Hao,

  Mostly looks good, I think there are just a few more changes than
are strictly necessary.


================
Comment at: lib/Target/AArch64/AArch64InstrNEON.td:3380-3381
@@ -3379,4 +3379,4 @@
 // Load multiple 1-element structure to N consecutive registers (N = 2,3,4)
-defm LD1_2V : LDVList_BHSD<0b1010, "VPair", "ld1">;
-def LD1_2V_1D : NeonI_LDVList<0, 0b1010, 0b11, VPair1D_operand, "ld1">;

----------------
I think these names are fine as they are. There's no reason for the
NEON intrinsics to force their bastardised AArch32 conventions on the
64-bit backend. "x2" isn't *bad* as such, it's just an unnecessary
change.

================
Comment at: test/CodeGen/AArch64/neon-simd-post-ldst-multi-elem.ll:203
@@ +202,3 @@
+define <16 x i8> @test_vld1x2_fx_update(i8* %a, i8** %ptr) {
+; CHECK: test_vld1x2_fx_update
+; CHECK: ld1 {v{{[0-9]+}}.16b, v{{[0-9]+}}.16b}, [x{{[0-9]+|sp}}], #32
----------------
Chad's CHECK-LABEL suggestion was a good one. It applies here too.

================
Comment at: utils/TableGen/NeonEmitter.cpp:872
@@ -871,1 +871,3 @@

+static bool isEndWith_xN(std::string const &name) {
+  if (name.length() > 3) {
----------------
Either "doesEndWith_xN" or "endsWith_xN" would be idiomatic English here.


http://llvm-reviews.chandlerc.com/D2175



More information about the llvm-commits mailing list