[clang] [CIR] max-across-vector (vmaxv_*) intrinsics (PR #194401)
Kartik Ohlan via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 28 21:52:03 PDT 2026
Ko496-glitch wrote:
```
case NEON::BI__builtin_neon_vmaxv_f16: {
mlir::Type fp16Ty = cgf.getCIRGenModule().fP16Ty;
cir::VectorType vecTy = cir::VectorType::get(fp16Ty, 4);
return emitNeonCall(cgf.cgm, cgf.getBuilder(),
{vecTy}, ops,
"aarch64.neon.fmaxv",
fp16Ty, loc);
}
case NEON::BI__builtin_neon_vmaxvq_f16: {
mlir::Type fp16Ty = cgf.getCIRGenModule().fP16Ty;
cir::VectorType vecTy = cir::VectorType::get(fp16Ty, 8);
return emitNeonCall(cgf.cgm, cgf.getBuilder(),
{vecTy}, ops,
"aarch64.neon.fmaxv",
fp16Ty, loc);
}
```
wanted to ask if this looks good ? Moreover running into this issue
```
executed command: /Users/kartikohlan/llvm-project/build-release/bin/clang -cc1 -internal-isystem /Users/kartikohlan/llvm-project/build-release/lib/clang/23/include -nostdsysteminc -triple arm64-none-linux-gnu -target-feature +neon -disable-O0-optnone -flax-vector-conversions=none -emit-llvm -o - /Users/kartikohlan/llvm-project/clang/test/CodeGen/AArch64/neon/intrinsics.c
# .---command stderr------------
# | /Users/kartikohlan/llvm-project/clang/test/CodeGen/AArch64/neon/intrinsics.c:171:10: error: '__builtin_neon_vmaxvq_f16' needs target feature fullfp16,neon
# | 171 | return vmaxvq_f16(a);
# | | ^
# | /Users/kartikohlan/llvm-project/build-release/lib/clang/23/include/arm_neon.h:45577:41: note: expanded from macro 'vmaxvq_f16'
# | 45577 | __ret = __builtin_bit_cast(float16_t, __builtin_neon_vmaxvq_f16(__builtin_bit_cast(int8x16_t, __s0))); \
# | | ^
# | 1 error generated.
```
so i added -target-feature +fullfp16 in the RUN line
https://github.com/llvm/llvm-project/pull/194401
More information about the cfe-commits
mailing list