[llvm] [LLVM][CodeGen][AArch64] Don't scalarise v8{f16,bf16} vsetcc operations. (PR #135398)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 03:00:26 PDT 2025


================
@@ -841,18 +841,21 @@ AArch64TargetLowering::AArch64TargetLowering(const TargetMachine &TM,
     setOperationPromotedToType(ISD::FRINT,      V4Narrow, MVT::v4f32);
     setOperationPromotedToType(ISD::FNEARBYINT, V4Narrow, MVT::v4f32);
     setOperationPromotedToType(ISD::FCANONICALIZE, V4Narrow, MVT::v4f32);
+    setOperationPromotedToType(ISD::SETCC,         V4Narrow, MVT::v4f32);
----------------
paulwalker-arm wrote:

Thanks, I'll add it to my TODO list to revisit. I have investigating this in the past and found uses that relied on the current behaviour. I recall things like using promotion to canonicalise all vector loads to integer vector loads.  Perhaps I misunderstood the code back then or the compiler has simply moved on. Hopefully the latter because like you say the current default doesn't feel much like promotion.

https://github.com/llvm/llvm-project/pull/135398


More information about the llvm-commits mailing list