https://gcc.gnu.org/g:175bacbb2541eba10daa637a7e9179524fc7f9a6

commit r16-4461-g175bacbb2541eba10daa637a7e9179524fc7f9a6
Author: Hu, Lin1 <[email protected]>
Date:   Fri Oct 10 14:30:19 2025 +0800

    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.

Diff:
---
 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)

Reply via email to