From 175bacbb2541eba10daa637a7e9179524fc7f9a6 Mon Sep 17 00:00:00 2001 From: "Hu, Lin1" Date: Fri, 10 Oct 2025 14:30:19 +0800 Subject: [PATCH] x86: Cast stride to __PTRDIFF_TYPE__ for AMX-MOVRS intrinsics. [PR122119] On 64-bit windows, long can't be used, because it is 32 bits. Use __PTRDIFF_TYPE__ instead of long. gcc/ChangeLog: PR target/122119 * config/i386/amxmovrsintrin.h (_tile_loaddrs_internal): Use __PTRDIFF_TYPE__ instead of long. (_tile_loaddrst1_internal): Ditto. --- gcc/config/i386/amxmovrsintrin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/i386/amxmovrsintrin.h b/gcc/config/i386/amxmovrsintrin.h index 019adcf3bbab..93a2dbf2c3a3 100644 --- a/gcc/config/i386/amxmovrsintrin.h +++ b/gcc/config/i386/amxmovrsintrin.h @@ -40,13 +40,13 @@ __asm__ volatile \ ("{tileloaddrs\t(%0,%1,1), %%tmm"#tdst \ "|tileloaddrs\t%%tmm"#tdst", [%0+%1*1]}" \ - :: "r" ((const void*) (base)), "r" ((long) (stride))) + :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride))) #define _tile_loaddrst1_internal(tdst, base, stride) \ __asm__ volatile \ ("{tileloaddrst1\t(%0,%1,1), %%tmm"#tdst \ "|tileloaddrst1\t%%tmm"#tdst", [%0+%1*1]}" \ - :: "r" ((const void*) (base)), "r" ((long) (stride))) + :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride))) #define _tile_loaddrs(tdst, base, stride) \ _tile_loaddrs_internal(tdst, base, stride)