[PATCH] D138788: [SVE] Change some bfloat lane intrinsics to use i32 immediates

David Sherwood via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 6 06:04:48 PST 2022


david-arm updated this revision to Diff 480451.
david-arm added a comment.

I did try to avoid having to create an intrinsic with a different name, but I was thwarted at every turn! It is with great regret that I report these two problems:

1. When you write an IR test file containing a declaration of the same intrinsic with a different type and try to use the upgrade mechanism the compiler crashes in `llvm::Intrinsic::getDeclaration`. This is presumably because we've declared an intrinsic in the module with a different signature to that in IntrinsicsAArch64.td and it seems deeply unhappy about it.
2. Secondly, in `llvm::UpgradeIntrinsicFunction` we would also hit the assert `assert(F != NewFn && "Intrinsic function upgraded to the same function");`

Let us bemoan the evil that befalls us @paulwalker-arm!


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

https://reviews.llvm.org/D138788

Files:
  clang/include/clang/Basic/arm_sve.td
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c
  llvm/include/llvm/IR/IntrinsicsAArch64.td
  llvm/lib/IR/AutoUpgrade.cpp
  llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
  llvm/lib/Target/AArch64/SVEInstrFormats.td
  llvm/test/Bitcode/upgrade-aarch64-sve-intrinsics.ll
  llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138788.480451.patch
Type: text/x-patch
Size: 31079 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221206/08924354/attachment-0001.bin>


More information about the cfe-commits mailing list