[clang] [llvm] [clang][AArch64] Emit generic IR instructions instead of `llvm.aarch64.neon.{s,u}{min,max}...` (PR #225339)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 22 07:00:24 PDT 2026
=?utf-8?q?Ömer_Sinan_Ağacan?= <omer at osa1.net>,
=?utf-8?q?Ömer_Sinan_Ağacan?= <omer at osa1.net>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/225339 at github.com>
================
@@ -2474,7 +2474,7 @@ uint32x4_t test_vmaxq_u32(uint32x4_t v1, uint32x4_t v2) {
// LLVM: [[TMP1:%.*]] = bitcast <4 x i32> [[V2]] to <16 x i8>
// LLVM: [[VMAXQ_V_I:%.*]] = bitcast <16 x i8> [[TMP0]] to <4 x i32>
// LLVM: [[VMAXQ_V1_I:%.*]] = bitcast <16 x i8> [[TMP1]] to <4 x i32>
- // LLVM: [[VMAXQ_V2_I:%.*]] = call <4 x i32> @llvm.aarch64.neon.umax.v4i32(<4 x i32> [[VMAXQ_V_I]], <4 x i32> [[VMAXQ_V1_I]])
+ // LLVM: [[VMAXQ_V2_I:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> [[VMAXQ_V_I]], <4 x i32> [[VMAXQ_V1_I]])
----------------
nikic wrote:
No, you can leave __builtin_neon_vmaxq_v alone. The important bit is that the generic LLVM intrinsics get generated.
https://github.com/llvm/llvm-project/pull/225339
More information about the llvm-commits
mailing list