[clang] [llvm] [AArch64] Add support for range prefetch intrinsic (PR #170490)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 17 05:40:02 PST 2025


================
@@ -1122,6 +1122,19 @@ bool SemaARM::CheckAArch64BuiltinFunctionCall(const TargetInfo &TI,
            SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 1);
   }
 
+  if (BuiltinID == AArch64::BI__builtin_arm_range_prefetch_x) {
+    return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1) ||
+           SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 1) ||
+           SemaRef.BuiltinConstantArgRange(TheCall, 3, -2048, 2040) ||
+           SemaRef.BuiltinConstantArgRange(TheCall, 4, 1, 65536) ||
+           SemaRef.BuiltinConstantArgRange(TheCall, 5, -2048, 2040);
----------------
paulwalker-arm wrote:

The ranges for args three and five look too small? The ACLE specification says `[-2MiB, +2MiB)` (i.e. a signed 22-bit number) so I'd expect `-2^21, 2^21 - 1`. 

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


More information about the llvm-commits mailing list