[PATCH] D89183: [VE] Add vector load/store instructions

Simon Moll via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 13 00:37:01 PDT 2020


simoll added inline comments.


================
Comment at: llvm/lib/Target/VE/VEISelLowering.cpp:637-672
+  addRegisterClass(MVT::v2i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v4i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v8i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v16i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v32i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v64i32, &VE::V64RegClass);
+  addRegisterClass(MVT::v128i32, &VE::V64RegClass);
----------------
kaz7 wrote:
> simoll wrote:
> > I wonder why there are vector types that do not map directly to vector registers.
> Which types are not mapped as you are asked?  I think all vector types from v2f64 to v256f64 are mapped.
Yes, they are mapped now, but why are there more vector types being added than necessary? For example, `v16f64` is not a vector register type for VE. If it was not mapped, LLVM could still legalize/expand it into a legal v256f64 type. 
I was expecting to see only `v256i64`, `v256f64`, `v512i32`,`v512f32`,`v256i1` and `v512i1` in this list but there may be a good reason to have all other vector types here too.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D89183



More information about the llvm-commits mailing list