evandro marked 7 inline comments as done.
evandro added inline comments.
================
Comment at: clang/include/clang/Basic/RISCVVTypes.def:32
+// - ElBits is the size of one element in bits (SEW).
+//
+// - IsSigned is true for vectors of signed integer elements and
----------------
HsiangKai wrote:
> craig.topper wrote:
> > NF argument isn't documented. And is always 1.
> > NF argument isn't documented. And is always 1.
> 
> We could remove it in this patch. The field will be needed when we are going 
> to upstream Zvlsseg implementation.
Perhaps we can just note that `NF` is going to be used by Zvlsseg instead.


================
Comment at: clang/include/clang/Basic/RISCVVTypes.def:67
+RVV_VECTOR_TYPE_INT("__rvv_int8m2_t",  RvvInt8m2,  RvvInt8m2Ty,  16,  8, 1, 
true)
+RVV_VECTOR_TYPE_INT("__rvv_int8m4_t",  RvvInt8m4,  RvvInt8m4Ty,  32,  8, 1, 
true)
+RVV_VECTOR_TYPE_INT("__rvv_int8m8_t",  RvvInt8m8,  RvvInt8m8Ty,  64,  8, 1, 
true)
----------------
craig.topper wrote:
> craig.topper wrote:
> > jrtc27 wrote:
> > > liaolucy wrote:
> > > > RISC-V V has too many types, more than 200. All types use builtin 
> > > > types? Is it possible to reduce the number of builtin types?
> > > Indeed this is madness, what's wrong with just using 
> > > `__attribute__((vector_size(n)))` on the right type? We should not be 
> > > encouraging people to write code with architecture-specific types... but 
> > > if we _really_ need these because RISC-V GCC decided this is how RISC-V V 
> > > is going to look them can we not just shove them all in a header as 
> > > typedef's for the architecture-independent attributed types and push that 
> > > complexity out of the compiler itself?
> > We are using <vscale x 1 x i64> to specify types in IR. The size of the 
> > fixed part is being used to control the LMUL parameter. There is currently 
> > no way to spell a scalable vector type in C in a generic way.
> > 
> > Alternatively I guess we could make LMUL a parameter to the intrinsic and 
> > create the scalable IR types in the frontend based on it?
> I do wonder why we bothered to have signed and unsigned types. The signedness 
> of the operation should be carried in the intrinsic name.
Some integer operations distinguish between signed and unsigned.  


================
Comment at: clang/lib/AST/ASTContext.cpp:2178
+      Width = 0; \
+      Align = 128; \
+      break;
----------------
HsiangKai wrote:
> craig.topper wrote:
> > Does this alignment need to be this high? The VMV0 register class in the 
> > backend has an alignment of 64 for spills. Just wondering why they aren't 
> > consistent.
> > Does this alignment need to be this high? The VMV0 register class in the 
> > backend has an alignment of 64 for spills. Just wondering why they aren't 
> > consistent.
> 
> Indeed, it should be 64.
> > Does this alignment need to be this high? The VMV0 register class in the 
> > backend has an alignment of 64 for spills. Just wondering why they aren't 
> > consistent.
> 
> Indeed, it should be 64.

Good catch!


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

https://reviews.llvm.org/D92715

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to