[PATCH] D121898: [Verifier] Verify parameter alignment.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 20 03:25:07 PDT 2022


dmgreen added a comment.

In D121898#3870522 <https://reviews.llvm.org/D121898#3870522>, @LuoYuanke wrote:

> I remove the constrain for intrinsics with https://reviews.llvm.org/D136330. However when testing below intrinsics case, it still crashes on DAGISel.
>
>   $ cat param-align.ll
>   define dso_local float @foo(<8192 x float> noundef %vec) {
>   entry:
>     %b = call float @llvm.vector.reduce.fadd.f32.v8192f32(float -0.0, <8192 x float> %vec)
>     ret float %b
>   }
>   
>   declare float @llvm.vector.reduce.fadd.f32.v8192f32(float %start_value, <8192 x float> %a)
>   $ llc param-align.ll
>   llc: /export/users/workspace/opensrc/llvm-project-github/llvm/include/llvm/CodeGen/TargetCallingConv.h:150: void llvm::ISD::ArgFlagsTy::setMemAlign(llvm::Align): Assertion `getNonZeroMemAlign() == A && "bitfield overflow"' failed.
>   PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.

That is presumably because of the `<8192 x float> noundef %vec` argument for `@foo`. If it was loaded from a pointer, does it still fail? It will be a pretty huge expansion, but should work OK.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121898



More information about the llvm-commits mailing list