public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-3431] x86-64: Update AVX512FP16 ABI tests for x32
@ 2021-09-09 15:56 H.J. Lu
  0 siblings, 0 replies; only message in thread
From: H.J. Lu @ 2021-09-09 15:56 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:de515ce0b209cc7e5a780d9846e5154d380a763e

commit r12-3431-gde515ce0b209cc7e5a780d9846e5154d380a763e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 9 07:23:16 2021 -0700

    x86-64: Update AVX512FP16 ABI tests for x32
    
    On x32, long is the same as int and pointer is 32 bits.  Update AVX512FP16
    ABI tests:
    
    1. Replace long with long long for 64-bit integers.
    2. Update type and alignment for long and pointer.
    3. Skip tests for long on x32.
    
            * gcc.target/x86_64/abi/avx512fp16/args.h: Replace long with
            long long.
            (XMM_T): Rename _long to _longlong and _ulong to _ulonglong.
            (X87_T): Rename _ulong to _ulonglong.
            * gcc.target/x86_64/abi/avx512fp16/defines.h (TYPE_SIZE_LONG):
            Define to 4 if __ILP32__ is defined.
            (TYPE_SIZE_POINTER): Likewise.
            (TYPE_ALIGN_LONG): Likewise.
            (TYPE_ALIGN_POINTER): Likewise.
            * gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c
            (main): Skip test for long if __ILP32__ is defined.
            * gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c
            (do_test): Replace _long with _longlong.
            * gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c:
            (check_300): Replace _ulong with _ulonglong.
            * gcc.target/x86_64/abi/avx512fp16/m256h/args.h: Replace long
            with long long.
            (YMM_T): Rename _long to _longlong and _ulong to _ulonglong.
            (X87_T): Rename _ulong to _ulonglong.
            * gcc.target/x86_64/abi/avx512fp16/m512h/args.h: Replace long
            with long long.
            (ZMM_T): Rename _long to _longlong and _ulong to _ulonglong.
            (X87_T): Rename _ulong to _ulonglong.

Diff:
---
 .../gcc.target/x86_64/abi/avx512fp16/args.h        |  12 +--
 .../gcc.target/x86_64/abi/avx512fp16/defines.h     |  26 +++++-
 .../gcc.target/x86_64/abi/avx512fp16/m256h/args.h  |  12 +--
 .../gcc.target/x86_64/abi/avx512fp16/m512h/args.h  |  12 +--
 .../avx512fp16/test_3_element_struct_and_unions.c  | 102 +++++++++++++++++++++
 .../x86_64/abi/avx512fp16/test_m64m128_returning.c |  12 +--
 .../x86_64/abi/avx512fp16/test_struct_returning.c  |   2 +-
 7 files changed, 148 insertions(+), 30 deletions(-)

diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
index 4a7b9a90fbe..425cc3f5e2b 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
@@ -23,9 +23,9 @@ typedef union {
   _Float16 __Float16[8];
   float _float[4];
   double _double[2];
-  long _long[2];
+  long long _longlong[2];
   int _int[4];
-  unsigned long _ulong[2];
+  ulonglong _ulonglong[2];
 #ifdef CHECK_M64_M128
   __m64 _m64[2];
   __m128 _m128[1];
@@ -38,13 +38,13 @@ typedef union {
   float _float;
   double _double;
   ldouble _ldouble;
-  ulong _ulong[2];
+  ulonglong _ulonglong[2];
 } X87_T;
 extern void (*callthis)(void);
-extern unsigned long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
+extern unsigned long long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
 XMM_T xmm_regs[16];
 X87_T x87_regs[8];
-extern volatile unsigned long volatile_var;
+extern volatile unsigned long long volatile_var;
 extern void snapshot (void);
 extern void snapshot_ret (void);
 #define WRAP_CALL(N) \
@@ -75,7 +75,7 @@ extern void snapshot_ret (void);
    these are used or even really available.  */
 struct IntegerRegisters
 {
-  unsigned long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
+  unsigned long long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
 };
 struct FloatRegisters
 {
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
index 17f2c27edc6..892a66eb279 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
@@ -4,7 +4,7 @@
 /* Get __m64 and __m128. */
 #include <immintrin.h>
 
-typedef unsigned long ulong;
+typedef unsigned long long ulonglong;
 typedef long double ldouble;
 
 /* These defines determines what part of the test should be run.  When
@@ -47,7 +47,11 @@ typedef long double ldouble;
 #define TYPE_SIZE_CHAR         1
 #define TYPE_SIZE_SHORT        2
 #define TYPE_SIZE_INT          4
-#define TYPE_SIZE_LONG         8
+#ifdef __ILP32__
+# define TYPE_SIZE_LONG        4
+#else
+# define TYPE_SIZE_LONG        8
+#endif
 #define TYPE_SIZE_LONG_LONG    8
 #define TYPE_SIZE_INT128       16
 #define TYPE_SIZE_FLOAT16      2
@@ -58,12 +62,20 @@ typedef long double ldouble;
 #define TYPE_SIZE_M64          8
 #define TYPE_SIZE_M128         16
 #define TYPE_SIZE_ENUM         4
-#define TYPE_SIZE_POINTER      8
+#ifdef __ILP32__
+# define TYPE_SIZE_POINTER     4
+#else
+# define TYPE_SIZE_POINTER     8
+#endif
 
 #define TYPE_ALIGN_CHAR        1
 #define TYPE_ALIGN_SHORT       2
 #define TYPE_ALIGN_INT         4
-#define TYPE_ALIGN_LONG        8
+#ifdef __ILP32__
+# define TYPE_ALIGN_LONG       4
+#else
+# define TYPE_ALIGN_LONG       8
+#endif
 #define TYPE_ALIGN_LONG_LONG   8
 #define TYPE_ALIGN_INT128      16
 #define TYPE_ALIGN_FLOAT16     2
@@ -74,7 +86,11 @@ typedef long double ldouble;
 #define TYPE_ALIGN_M64         8
 #define TYPE_ALIGN_M128        16
 #define TYPE_ALIGN_ENUM        4
-#define TYPE_ALIGN_POINTER     8
+#ifdef __ILP32__
+# define TYPE_ALIGN_POINTER    4
+#else
+# define TYPE_ALIGN_POINTER    8
+#endif
 
 /* These defines control the building of the list of types to check. There
    is a string identifying the type (with a comma after), a size of the type
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
index 136db48c144..add109587d6 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
@@ -33,9 +33,9 @@ typedef union {
   _Float16 __Float16[16];
   float _float[8];
   double _double[4];
-  long _long[4];
+  long long _longlong[4];
   int _int[8];
-  unsigned long _ulong[4];
+  unsigned long long _ulonglong[4];
   __m64 _m64[4];
   __m128 _m128[2];
   __m256 _m256[1];
@@ -46,13 +46,13 @@ typedef union {
   float _float;
   double _double;
   long double _ldouble;
-  unsigned long _ulong[2];
+  unsigned long long _ulonglong[2];
 } X87_T;
 extern void (*callthis)(void);
-extern unsigned long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
+extern unsigned long long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
 YMM_T ymm_regs[16];
 X87_T x87_regs[8];
-extern volatile unsigned long volatile_var;
+extern volatile unsigned long long volatile_var;
 extern void snapshot (void);
 extern void snapshot_ret (void);
 #define WRAP_CALL(N) \
@@ -83,7 +83,7 @@ extern void snapshot_ret (void);
    these are used or even really available.  */
 struct IntegerRegisters
 {
-  unsigned long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
+  unsigned long long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
 };
 struct FloatRegisters
 {
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
index ec89fae4597..d59c3373694 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
@@ -33,9 +33,9 @@ typedef union {
   _Float16 __Float16[32];
   float _float[16];
   double _double[8];
-  long _long[8];
+  long long _longlong[8];
   int _int[16];
-  unsigned long _ulong[8];
+  unsigned long long _ulonglong[8];
   __m64 _m64[8];
   __m128 _m128[4];
   __m256 _m256[2];
@@ -47,13 +47,13 @@ typedef union {
   float _float;
   double _double;
   long double _ldouble;
-  unsigned long _ulong[2];
+  unsigned long long _ulonglong[2];
 } X87_T;
 extern void (*callthis)(void);
-extern unsigned long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
+extern unsigned long long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
 ZMM_T zmm_regs[32];
 X87_T x87_regs[8];
-extern volatile unsigned long volatile_var;
+extern volatile unsigned long long volatile_var;
 extern void snapshot (void);
 extern void snapshot_ret (void);
 #define WRAP_CALL(N) \
@@ -84,7 +84,7 @@ extern void snapshot_ret (void);
    these are used or even really available.  */
 struct IntegerRegisters
 {
-  unsigned long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
+  unsigned long long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
 };
 struct FloatRegisters
 {
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c
index cc94e0fe0e9..869eec52d70 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c
@@ -10,7 +10,9 @@ main (void)
   check_struct_and_union3(char, char, char, 3, 1);
   check_struct_and_union3(char, char, short, 4, 2);
   check_struct_and_union3(char, char, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, char, long, 16, 8);
+#endif
   check_struct_and_union3(char, char, long long, 16, 8);
   check_struct_and_union3(char, char, float, 8, 4);
   check_struct_and_union3(char, char, double, 16, 8);
@@ -18,7 +20,9 @@ main (void)
   check_struct_and_union3(char, short, char, 6, 2);
   check_struct_and_union3(char, short, short, 6, 2);
   check_struct_and_union3(char, short, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, short, long, 16, 8);
+#endif
   check_struct_and_union3(char, short, long long, 16, 8);
   check_struct_and_union3(char, short, float, 8, 4);
   check_struct_and_union3(char, short, double, 16, 8);
@@ -26,11 +30,14 @@ main (void)
   check_struct_and_union3(char, int, char, 12, 4);
   check_struct_and_union3(char, int, short, 12, 4);
   check_struct_and_union3(char, int, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, int, long, 16, 8);
+#endif
   check_struct_and_union3(char, int, long long, 16, 8);
   check_struct_and_union3(char, int, float, 12, 4);
   check_struct_and_union3(char, int, double, 16, 8);
   check_struct_and_union3(char, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(char, long, char, 24, 8);
   check_struct_and_union3(char, long, short, 24, 8);
   check_struct_and_union3(char, long, int, 24, 8);
@@ -39,6 +46,7 @@ main (void)
   check_struct_and_union3(char, long, float, 24, 8);
   check_struct_and_union3(char, long, double, 24, 8);
   check_struct_and_union3(char, long, long double, 32, 16);
+#endif
   check_struct_and_union3(char, long long, char, 24, 8);
   check_struct_and_union3(char, long long, short, 24, 8);
   check_struct_and_union3(char, long long, int, 24, 8);
@@ -50,7 +58,9 @@ main (void)
   check_struct_and_union3(char, float, char, 12, 4);
   check_struct_and_union3(char, float, short, 12, 4);
   check_struct_and_union3(char, float, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, float, long, 16, 8);
+#endif
   check_struct_and_union3(char, float, long long, 16, 8);
   check_struct_and_union3(char, float, float, 12, 4);
   check_struct_and_union3(char, float, double, 16, 8);
@@ -74,7 +84,9 @@ main (void)
   check_struct_and_union3(short, char, char, 4, 2);
   check_struct_and_union3(short, char, short, 6, 2);
   check_struct_and_union3(short, char, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(short, char, long, 16, 8);
+#endif 
   check_struct_and_union3(short, char, long long, 16, 8);
   check_struct_and_union3(short, char, float, 8, 4);
   check_struct_and_union3(short, char, double, 16, 8);
@@ -82,7 +94,9 @@ main (void)
   check_struct_and_union3(short, short, char, 6, 2);
   check_struct_and_union3(short, short, short, 6, 2);
   check_struct_and_union3(short, short, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(short, short, long, 16, 8);
+#endif
   check_struct_and_union3(short, short, long long, 16, 8);
   check_struct_and_union3(short, short, float, 8, 4);
   check_struct_and_union3(short, short, double, 16, 8);
@@ -90,11 +104,14 @@ main (void)
   check_struct_and_union3(short, int, char, 12, 4);
   check_struct_and_union3(short, int, short, 12, 4);
   check_struct_and_union3(short, int, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(short, int, long, 16, 8);
+#endif
   check_struct_and_union3(short, int, long long, 16, 8);
   check_struct_and_union3(short, int, float, 12, 4);
   check_struct_and_union3(short, int, double, 16, 8);
   check_struct_and_union3(short, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(short, long, char, 24, 8);
   check_struct_and_union3(short, long, short, 24, 8);
   check_struct_and_union3(short, long, int, 24, 8);
@@ -103,6 +120,7 @@ main (void)
   check_struct_and_union3(short, long, float, 24, 8);
   check_struct_and_union3(short, long, double, 24, 8);
   check_struct_and_union3(short, long, long double, 32, 16);
+#endif
   check_struct_and_union3(short, long long, char, 24, 8);
   check_struct_and_union3(short, long long, short, 24, 8);
   check_struct_and_union3(short, long long, int, 24, 8);
@@ -114,7 +132,9 @@ main (void)
   check_struct_and_union3(short, float, char, 12, 4);
   check_struct_and_union3(short, float, short, 12, 4);
   check_struct_and_union3(short, float, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(short, float, long, 16, 8);
+#endif
   check_struct_and_union3(short, float, long long, 16, 8);
   check_struct_and_union3(short, float, float, 12, 4);
   check_struct_and_union3(short, float, double, 16, 8);
@@ -138,7 +158,9 @@ main (void)
   check_struct_and_union3(int, char, char, 8, 4);
   check_struct_and_union3(int, char, short, 8, 4);
   check_struct_and_union3(int, char, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, char, long, 16, 8);
+#endif
   check_struct_and_union3(int, char, long long, 16, 8);
   check_struct_and_union3(int, char, float, 12, 4);
   check_struct_and_union3(int, char, double, 16, 8);
@@ -146,7 +168,9 @@ main (void)
   check_struct_and_union3(int, short, char, 8, 4);
   check_struct_and_union3(int, short, short, 8, 4);
   check_struct_and_union3(int, short, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, short, long, 16, 8);
+#endif
   check_struct_and_union3(int, short, long long, 16, 8);
   check_struct_and_union3(int, short, float, 12, 4);
   check_struct_and_union3(int, short, double, 16, 8);
@@ -154,11 +178,14 @@ main (void)
   check_struct_and_union3(int, int, char, 12, 4);
   check_struct_and_union3(int, int, short, 12, 4);
   check_struct_and_union3(int, int, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, int, long, 16, 8);
+#endif
   check_struct_and_union3(int, int, long long, 16, 8);
   check_struct_and_union3(int, int, float, 12, 4);
   check_struct_and_union3(int, int, double, 16, 8);
   check_struct_and_union3(int, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(int, long, char, 24, 8);
   check_struct_and_union3(int, long, short, 24, 8);
   check_struct_and_union3(int, long, int, 24, 8);
@@ -166,6 +193,7 @@ main (void)
   check_struct_and_union3(int, long, long long, 24, 8);
   check_struct_and_union3(int, long, float, 24, 8);
   check_struct_and_union3(int, long, double, 24, 8);
+#endif
   check_struct_and_union3(int, long, long double, 32, 16);
   check_struct_and_union3(int, long long, char, 24, 8);
   check_struct_and_union3(int, long long, short, 24, 8);
@@ -178,7 +206,9 @@ main (void)
   check_struct_and_union3(int, float, char, 12, 4);
   check_struct_and_union3(int, float, short, 12, 4);
   check_struct_and_union3(int, float, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, float, long, 16, 8);
+#endif
   check_struct_and_union3(int, float, long long, 16, 8);
   check_struct_and_union3(int, float, float, 12, 4);
   check_struct_and_union3(int, float, double, 16, 8);
@@ -199,6 +229,7 @@ main (void)
   check_struct_and_union3(int, long double, float, 48, 16);
   check_struct_and_union3(int, long double, double, 48, 16);
   check_struct_and_union3(int, long double, long double, 48, 16);
+#ifndef __ILP32__
   check_struct_and_union3(long, char, char, 16, 8);
   check_struct_and_union3(long, char, short, 16, 8);
   check_struct_and_union3(long, char, int, 16, 8);
@@ -222,7 +253,9 @@ main (void)
   check_struct_and_union3(long, int, long long, 24, 8);
   check_struct_and_union3(long, int, float, 16, 8);
   check_struct_and_union3(long, int, double, 24, 8);
+#endif
   check_struct_and_union3(long, int, long double, 32, 16);
+#ifndef  __ILP32__
   check_struct_and_union3(long, long, char, 24, 8);
   check_struct_and_union3(long, long, short, 24, 8);
   check_struct_and_union3(long, long, int, 24, 8);
@@ -263,10 +296,13 @@ main (void)
   check_struct_and_union3(long, long double, float, 48, 16);
   check_struct_and_union3(long, long double, double, 48, 16);
   check_struct_and_union3(long, long double, long double, 48, 16);
+#endif
   check_struct_and_union3(long long, char, char, 16, 8);
   check_struct_and_union3(long long, char, short, 16, 8);
   check_struct_and_union3(long long, char, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, char, long, 24, 8);
+#endif
   check_struct_and_union3(long long, char, long long, 24, 8);
   check_struct_and_union3(long long, char, float, 16, 8);
   check_struct_and_union3(long long, char, double, 24, 8);
@@ -274,7 +310,9 @@ main (void)
   check_struct_and_union3(long long, short, char, 16, 8);
   check_struct_and_union3(long long, short, short, 16, 8);
   check_struct_and_union3(long long, short, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, short, long, 24, 8);
+#endif
   check_struct_and_union3(long long, short, long long, 24, 8);
   check_struct_and_union3(long long, short, float, 16, 8);
   check_struct_and_union3(long long, short, double, 24, 8);
@@ -282,18 +320,24 @@ main (void)
   check_struct_and_union3(long long, int, char, 16, 8);
   check_struct_and_union3(long long, int, short, 16, 8);
   check_struct_and_union3(long long, int, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, int, long, 24, 8);
+#endif
   check_struct_and_union3(long long, int, long long, 24, 8);
   check_struct_and_union3(long long, int, float, 16, 8);
   check_struct_and_union3(long long, int, double, 24, 8);
   check_struct_and_union3(long long, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(long long, long, char, 24, 8);
   check_struct_and_union3(long long, long, short, 24, 8);
   check_struct_and_union3(long long, long, int, 24, 8);
   check_struct_and_union3(long long, long, long, 24, 8);
+#endif
   check_struct_and_union3(long long, long, long long, 24, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, long, float, 24, 8);
   check_struct_and_union3(long long, long, double, 24, 8);
+#endif
   check_struct_and_union3(long long, long, long double, 32, 16);
   check_struct_and_union3(long long, long long, char, 24, 8);
   check_struct_and_union3(long long, long long, short, 24, 8);
@@ -306,7 +350,9 @@ main (void)
   check_struct_and_union3(long long, float, char, 16, 8);
   check_struct_and_union3(long long, float, short, 16, 8);
   check_struct_and_union3(long long, float, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, float, long, 24, 8);
+#endif
   check_struct_and_union3(long long, float, long long, 24, 8);
   check_struct_and_union3(long long, float, float, 16, 8);
   check_struct_and_union3(long long, float, double, 24, 8);
@@ -330,7 +376,9 @@ main (void)
   check_struct_and_union3(float, char, char, 8, 4);
   check_struct_and_union3(float, char, short, 8, 4);
   check_struct_and_union3(float, char, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, char, long, 16, 8);
+#endif
   check_struct_and_union3(float, char, long long, 16, 8);
   check_struct_and_union3(float, char, float, 12, 4);
   check_struct_and_union3(float, char, double, 16, 8);
@@ -338,7 +386,9 @@ main (void)
   check_struct_and_union3(float, short, char, 8, 4);
   check_struct_and_union3(float, short, short, 8, 4);
   check_struct_and_union3(float, short, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, short, long, 16, 8);
+#endif
   check_struct_and_union3(float, short, long long, 16, 8);
   check_struct_and_union3(float, short, float, 12, 4);
   check_struct_and_union3(float, short, double, 16, 8);
@@ -346,11 +396,14 @@ main (void)
   check_struct_and_union3(float, int, char, 12, 4);
   check_struct_and_union3(float, int, short, 12, 4);
   check_struct_and_union3(float, int, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, int, long, 16, 8);
+#endif
   check_struct_and_union3(float, int, long long, 16, 8);
   check_struct_and_union3(float, int, float, 12, 4);
   check_struct_and_union3(float, int, double, 16, 8);
   check_struct_and_union3(float, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(float, long, char, 24, 8);
   check_struct_and_union3(float, long, short, 24, 8);
   check_struct_and_union3(float, long, int, 24, 8);
@@ -358,6 +411,7 @@ main (void)
   check_struct_and_union3(float, long, long long, 24, 8);
   check_struct_and_union3(float, long, float, 24, 8);
   check_struct_and_union3(float, long, double, 24, 8);
+#endif
   check_struct_and_union3(float, long, long double, 32, 16);
   check_struct_and_union3(float, long long, char, 24, 8);
   check_struct_and_union3(float, long long, short, 24, 8);
@@ -370,7 +424,9 @@ main (void)
   check_struct_and_union3(float, float, char, 12, 4);
   check_struct_and_union3(float, float, short, 12, 4);
   check_struct_and_union3(float, float, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, float, long, 16, 8);
+#endif
   check_struct_and_union3(float, float, long long, 16, 8);
   check_struct_and_union3(float, float, float, 12, 4);
   check_struct_and_union3(float, float, double, 16, 8);
@@ -394,7 +450,9 @@ main (void)
   check_struct_and_union3(double, char, char, 16, 8);
   check_struct_and_union3(double, char, short, 16, 8);
   check_struct_and_union3(double, char, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, char, long, 24, 8);
+#endif
   check_struct_and_union3(double, char, long long, 24, 8);
   check_struct_and_union3(double, char, float, 16, 8);
   check_struct_and_union3(double, char, double, 24, 8);
@@ -402,7 +460,9 @@ main (void)
   check_struct_and_union3(double, short, char, 16, 8);
   check_struct_and_union3(double, short, short, 16, 8);
   check_struct_and_union3(double, short, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, short, long, 24, 8);
+#endif
   check_struct_and_union3(double, short, long long, 24, 8);
   check_struct_and_union3(double, short, float, 16, 8);
   check_struct_and_union3(double, short, double, 24, 8);
@@ -410,17 +470,23 @@ main (void)
   check_struct_and_union3(double, int, char, 16, 8);
   check_struct_and_union3(double, int, short, 16, 8);
   check_struct_and_union3(double, int, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, int, long, 24, 8);
+#endif
   check_struct_and_union3(double, int, long long, 24, 8);
   check_struct_and_union3(double, int, float, 16, 8);
   check_struct_and_union3(double, int, double, 24, 8);
   check_struct_and_union3(double, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(double, long, char, 24, 8);
   check_struct_and_union3(double, long, short, 24, 8);
   check_struct_and_union3(double, long, int, 24, 8);
   check_struct_and_union3(double, long, long, 24, 8);
+#endif
   check_struct_and_union3(double, long, long long, 24, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, long, float, 24, 8);
+#endif
   check_struct_and_union3(double, long, double, 24, 8);
   check_struct_and_union3(double, long, long double, 32, 16);
   check_struct_and_union3(double, long long, char, 24, 8);
@@ -434,7 +500,9 @@ main (void)
   check_struct_and_union3(double, float, char, 16, 8);
   check_struct_and_union3(double, float, short, 16, 8);
   check_struct_and_union3(double, float, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, float, long, 24, 8);
+#endif
   check_struct_and_union3(double, float, long long, 24, 8);
   check_struct_and_union3(double, float, float, 16, 8);
   check_struct_and_union3(double, float, double, 24, 8);
@@ -523,13 +591,17 @@ main (void)
   check_struct_and_union3(char, _Float16, char, 6, 2);
   check_struct_and_union3(char, _Float16, _Float16, 6, 2);
   check_struct_and_union3(char, _Float16, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, _Float16, long, 16, 8);
+#endif
   check_struct_and_union3(char, _Float16, long long, 16, 8);
   check_struct_and_union3(char, _Float16, float, 8, 4);
   check_struct_and_union3(char, _Float16, double, 16, 8);
   check_struct_and_union3(char, _Float16, long double, 32, 16);
   check_struct_and_union3(char, int, _Float16, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(char, long, _Float16, 24, 8);
+#endif
   check_struct_and_union3(char, long long, _Float16, 24, 8);
   check_struct_and_union3(char, float, _Float16, 12, 4);
   check_struct_and_union3(char, double, _Float16, 24, 8);
@@ -537,7 +609,9 @@ main (void)
   check_struct_and_union3(_Float16, char, char, 4, 2);
   check_struct_and_union3(_Float16, char, _Float16, 6, 2);
   check_struct_and_union3(_Float16, char, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(_Float16, char, long, 16, 8);
+#endif
   check_struct_and_union3(_Float16, char, long long, 16, 8);
   check_struct_and_union3(_Float16, char, float, 8, 4);
   check_struct_and_union3(_Float16, char, double, 16, 8);
@@ -545,7 +619,9 @@ main (void)
   check_struct_and_union3(_Float16, _Float16, char, 6, 2);
   check_struct_and_union3(_Float16, _Float16, _Float16, 6, 2);
   check_struct_and_union3(_Float16, _Float16, int, 8, 4);
+#ifndef __ILP32__
   check_struct_and_union3(_Float16, _Float16, long, 16, 8);
+#endif
   check_struct_and_union3(_Float16, _Float16, long long, 16, 8);
   check_struct_and_union3(_Float16, _Float16, float, 8, 4);
   check_struct_and_union3(_Float16, _Float16, double, 16, 8);
@@ -553,11 +629,14 @@ main (void)
   check_struct_and_union3(_Float16, int, char, 12, 4);
   check_struct_and_union3(_Float16, int, _Float16, 12, 4);
   check_struct_and_union3(_Float16, int, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(_Float16, int, long, 16, 8);
+#endif
   check_struct_and_union3(_Float16, int, long long, 16, 8);
   check_struct_and_union3(_Float16, int, float, 12, 4);
   check_struct_and_union3(_Float16, int, double, 16, 8);
   check_struct_and_union3(_Float16, int, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(_Float16, long, char, 24, 8);
   check_struct_and_union3(_Float16, long, _Float16, 24, 8);
   check_struct_and_union3(_Float16, long, int, 24, 8);
@@ -565,6 +644,7 @@ main (void)
   check_struct_and_union3(_Float16, long, long long, 24, 8);
   check_struct_and_union3(_Float16, long, float, 24, 8);
   check_struct_and_union3(_Float16, long, double, 24, 8);
+#endif
   check_struct_and_union3(_Float16, long, long double, 32, 16);
   check_struct_and_union3(_Float16, long long, char, 24, 8);
   check_struct_and_union3(_Float16, long long, _Float16, 24, 8);
@@ -577,7 +657,9 @@ main (void)
   check_struct_and_union3(_Float16, float, char, 12, 4);
   check_struct_and_union3(_Float16, float, _Float16, 12, 4);
   check_struct_and_union3(_Float16, float, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(_Float16, float, long, 16, 8);
+#endif
   check_struct_and_union3(_Float16, float, long long, 16, 8);
   check_struct_and_union3(_Float16, float, float, 12, 4);
   check_struct_and_union3(_Float16, float, double, 16, 8);
@@ -602,17 +684,22 @@ main (void)
   check_struct_and_union3(int, _Float16, char, 8, 4);
   check_struct_and_union3(int, _Float16, _Float16, 8, 4);
   check_struct_and_union3(int, _Float16, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, _Float16, long, 16, 8);
+#endif
   check_struct_and_union3(int, _Float16, long long, 16, 8);
   check_struct_and_union3(int, _Float16, float, 12, 4);
   check_struct_and_union3(int, _Float16, double, 16, 8);
   check_struct_and_union3(int, _Float16, long double, 32, 16);
   check_struct_and_union3(int, int, _Float16, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(int, long, _Float16, 24, 8);
+#endif
   check_struct_and_union3(int, long long, _Float16, 24, 8);
   check_struct_and_union3(int, float, _Float16, 12, 4);
   check_struct_and_union3(int, double, _Float16, 24, 8);
   check_struct_and_union3(int, long double, _Float16, 48, 16);
+#ifndef __ILP32__
   check_struct_and_union3(long, char, _Float16, 16, 8);
   check_struct_and_union3(long, _Float16, char, 16, 8);
   check_struct_and_union3(long, _Float16, _Float16, 16, 8);
@@ -621,24 +708,31 @@ main (void)
   check_struct_and_union3(long, _Float16, long long, 24, 8);
   check_struct_and_union3(long, _Float16, float, 16, 8);
   check_struct_and_union3(long, _Float16, double, 24, 8);
+#endif
   check_struct_and_union3(long, _Float16, long double, 32, 16);
+#ifndef __ILP32__
   check_struct_and_union3(long, int, _Float16, 16, 8);
   check_struct_and_union3(long, long, _Float16, 24, 8);
   check_struct_and_union3(long, long long, _Float16, 24, 8);
   check_struct_and_union3(long, float, _Float16, 16, 8);
   check_struct_and_union3(long, double, _Float16, 24, 8);
+#endif
   check_struct_and_union3(long, long double, _Float16, 48, 16);
   check_struct_and_union3(long long, char, _Float16, 16, 8);
   check_struct_and_union3(long long, _Float16, char, 16, 8);
   check_struct_and_union3(long long, _Float16, _Float16, 16, 8);
   check_struct_and_union3(long long, _Float16, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, _Float16, long, 24, 8);
+#endif
   check_struct_and_union3(long long, _Float16, long long, 24, 8);
   check_struct_and_union3(long long, _Float16, float, 16, 8);
   check_struct_and_union3(long long, _Float16, double, 24, 8);
   check_struct_and_union3(long long, _Float16, long double, 32, 16);
   check_struct_and_union3(long long, int, _Float16, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(long long, long, _Float16, 24, 8);
+#endif
   check_struct_and_union3(long long, long long, _Float16, 24, 8);
   check_struct_and_union3(long long, float, _Float16, 16, 8);
   check_struct_and_union3(long long, double, _Float16, 24, 8);
@@ -647,13 +741,17 @@ main (void)
   check_struct_and_union3(float, _Float16, char, 8, 4);
   check_struct_and_union3(float, _Float16, _Float16, 8, 4);
   check_struct_and_union3(float, _Float16, int, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, _Float16, long, 16, 8);
+#endif
   check_struct_and_union3(float, _Float16, long long, 16, 8);
   check_struct_and_union3(float, _Float16, float, 12, 4);
   check_struct_and_union3(float, _Float16, double, 16, 8);
   check_struct_and_union3(float, _Float16, long double, 32, 16);
   check_struct_and_union3(float, int, _Float16, 12, 4);
+#ifndef __ILP32__
   check_struct_and_union3(float, long, _Float16, 24, 8);
+#endif
   check_struct_and_union3(float, long long, _Float16, 24, 8);
   check_struct_and_union3(float, float, _Float16, 12, 4);
   check_struct_and_union3(float, double, _Float16, 24, 8);
@@ -662,13 +760,17 @@ main (void)
   check_struct_and_union3(double, _Float16, char, 16, 8);
   check_struct_and_union3(double, _Float16, _Float16, 16, 8);
   check_struct_and_union3(double, _Float16, int, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, _Float16, long, 24, 8);
+#endif
   check_struct_and_union3(double, _Float16, long long, 24, 8);
   check_struct_and_union3(double, _Float16, float, 16, 8);
   check_struct_and_union3(double, _Float16, double, 24, 8);
   check_struct_and_union3(double, _Float16, long double, 32, 16);
   check_struct_and_union3(double, int, _Float16, 16, 8);
+#ifndef __ILP32__
   check_struct_and_union3(double, long, _Float16, 24, 8);
+#endif
   check_struct_and_union3(double, long long, _Float16, 24, 8);
   check_struct_and_union3(double, float, _Float16, 16, 8);
   check_struct_and_union3(double, double, _Float16, 24, 8);
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c
index 34afee66586..363dfa9bbf7 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c
@@ -47,16 +47,16 @@ do_test (void)
   test_64 = (__m64){72,0};
   xmmt1._m64[0] = test_64;
   xmmt2._m64[0] = WRAP_RET (fun_test_returning___m64)();
-  if (xmmt1._long[0] != xmmt2._long[0]
-      || xmmt1._long[0] != xmm_regs[0]._long[0])
+  if (xmmt1._longlong[0] != xmmt2._longlong[0]
+      || xmmt1._longlong[0] != xmm_regs[0]._longlong[0])
     printf ("fail m64\n"), failed++;
 
   clear_struct_registers;
   test_128 = (__m128){73,0};
   xmmt1._m128[0] = test_128;
   xmmt2._m128[0] = WRAP_RET (fun_test_returning___m128)();
-  if (xmmt1._long[0] != xmmt2._long[0]
-      || xmmt1._long[0] != xmm_regs[0]._long[0])
+  if (xmmt1._longlong[0] != xmmt2._longlong[0]
+      || xmmt1._longlong[0] != xmm_regs[0]._longlong[0])
     printf ("fail m128\n"), failed++;
 
   clear_struct_registers;
@@ -64,8 +64,8 @@ do_test (void)
                         6.6f16, 7.7f16, 8.8f16};
   xmmt1._m128h[0] = test_128h;
   xmmt2._m128h[0] = WRAP_RET (fun_test_returning___m128h)();
-  if (xmmt1._long[0] != xmmt2._long[0]
-      || xmmt1._long[0] != xmm_regs[0]._long[0])
+  if (xmmt1._longlong[0] != xmmt2._longlong[0]
+      || xmmt1._longlong[0] != xmm_regs[0]._longlong[0])
     printf ("fail m128h\n"), failed++;
 
   if (failed)
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
index 92578127be7..5de18ee5e0a 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
+++ b/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
@@ -124,7 +124,7 @@ D(313,long long m1; _Float16 m2)
 void check_300 (void)
 {
   XMM_T x;
-  x._ulong[0] = rax;
+  x._ulonglong[0] = rax;
   switch (current_test) {
     case 300: assert ((rax & 0xff) == 42 && x._float[1] == 43); break;
     case 301: assert ((rax & 0xff) == 42 && xmm0d[0] == 43); break;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-09 15:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-09 15:56 [gcc r12-3431] x86-64: Update AVX512FP16 ABI tests for x32 H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).