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.
        (_tile_2rpntlvwz0rs_internal): Ditto.
        (_tile_2rpntlvwz0rst1_internal): Ditto.
        (_tile_2rpntlvwz1rs_internal): Ditto.
        (_tile_2rpntlvwz1rst1_internal): Ditto.
---
 gcc/config/i386/amxmovrsintrin.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gcc/config/i386/amxmovrsintrin.h b/gcc/config/i386/amxmovrsintrin.h
index 97969f894ff..2bc9f127138 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)
@@ -69,25 +69,25 @@ __asm__ volatile                                      \
   __asm__ volatile                                       \
   ("{t2rpntlvwz0rs\t(%0,%1,1), %%tmm"#tdst               \
      "|t2rpntlvwz0rs\t%%tmm"#tdst", [%0+%1*1]}"          \
-   :: "r" ((const void*) (base)), "r" ((long) (stride)))
+   :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride)))
 
 #define _tile_2rpntlvwz0rst1_internal(tdst, base, stride) \
   __asm__ volatile                                       \
   ("{t2rpntlvwz0rst1\t(%0,%1,1), %%tmm"#tdst             \
      "|t2rpntlvwz0rst1\t%%tmm"#tdst", [%0+%1*1]}"        \
-   :: "r" ((const void*) (base)), "r" ((long) (stride)))
+   :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride)))
 
 #define _tile_2rpntlvwz1rs_internal(tdst, base, stride)          \
   __asm__ volatile                                       \
   ("{t2rpntlvwz1rs\t(%0,%1,1), %%tmm"#tdst               \
      "|t2rpntlvwz1rs\t%%tmm"#tdst", [%0+%1*1]}"                  \
-   :: "r" ((const void*) (base)), "r" ((long) (stride)))
+   :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride)))
 
 #define _tile_2rpntlvwz1rst1_internal(tdst, base, stride) \
   __asm__ volatile                                       \
   ("{t2rpntlvwz1rst1\t(%0,%1,1), %%tmm"#tdst             \
      "|t2rpntlvwz1rst1\t%%tmm"#tdst", [%0+%1*1]}"        \
-   :: "r" ((const void*) (base)), "r" ((long) (stride)))
+   :: "r" ((const void*) (base)), "r" ((__PTRDIFF_TYPE__) (stride)))
 
 #define _tile_2rpntlvwz0rs(tdst, base, stride)           \
   _tile_2rpntlvwz0rs_internal(tdst, base, stride)
-- 
2.31.1

Reply via email to