efriedma added inline comments.

================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:8054
+
+    Value *Alloca = Builder.CreateAlloca(EltTy, Builder.getInt32(NumOpnds));
+    for (unsigned I = 0; I < NumOpnds; ++I)
----------------
Please use something like `CreateTempAlloca(llvm::ArrayType::get(EltTy, 
NumOpnds), CharUnits::fromQuantity(16))`.

(In particular, the way you've written it, the code allocates stack memory 
dynamically.  Might want to add a test with some control flow to demonstrate 
that you're putting the alloca into the entry block.)


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:8058
+          IsBoolTy ? Builder.CreateZExt(Ops[I], EltTy) : Ops[I],
+          Builder.CreateGEP(Alloca, Builder.getInt32(I)));
+
----------------
Builder.getInt64().


================
Comment at: clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c:257
+  // CHECK: %[[BASE:.*]] = getelementptr inbounds [4 x float], [4 x float]* 
%[[ALLOCA]], i64 0, i64 0
+  // CHECK: store float %x0, float* %[[BASE]]
+  // <assume other stores>
----------------
Please CHECK the alignment of all these operations.


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

https://reviews.llvm.org/D78750



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

Reply via email to