]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
x86: Cast stride to __PTRDIFF_TYPE__ for AMX-MOVRS intrinsics. [PR122119]
authorHu, Lin1 <lin1.hu@intel.com>
Fri, 10 Oct 2025 06:30:19 +0000 (14:30 +0800)
committerHu, Lin1 <lin1.hu@intel.com>
Fri, 17 Oct 2025 03:20:54 +0000 (11:20 +0800)
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

index 019adcf3bbab23029e505d0545998a9fc02481e2..93a2dbf2c3a3e74f0c6c698c4ff9f758f874470b 100644 (file)
 __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)