aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c')
-rw-r--r--gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c143
1 files changed, 0 insertions, 143 deletions
diff --git a/gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c b/gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
deleted file mode 100644
index f83209b27..000000000
--- a/gcc-4.7/gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "avx-check.h"
-#include "args.h"
-
-struct IntegerRegisters iregs;
-struct FloatRegisters fregs;
-unsigned int num_iregs, num_fregs;
-
-union un1
-{
- __m256 x;
- float f;
-};
-
-union un2
-{
- __m256 x;
- double d;
-};
-
-union un3
-{
- __m256 x;
- __m128 v;
-};
-
-union un4
-{
- __m256 x;
- long double ld;
-};
-
-union un5
-{
- __m256 x;
- int i;
-};
-
-void
-check_union_passing1(union un1 u1 ATTRIBUTE_UNUSED,
- union un1 u2 ATTRIBUTE_UNUSED,
- union un1 u3 ATTRIBUTE_UNUSED,
- union un1 u4 ATTRIBUTE_UNUSED,
- union un1 u5 ATTRIBUTE_UNUSED,
- union un1 u6 ATTRIBUTE_UNUSED,
- union un1 u7 ATTRIBUTE_UNUSED,
- union un1 u8 ATTRIBUTE_UNUSED)
-{
- check_m256_arguments;
-}
-
-void
-check_union_passing2(union un2 u1 ATTRIBUTE_UNUSED,
- union un2 u2 ATTRIBUTE_UNUSED,
- union un2 u3 ATTRIBUTE_UNUSED,
- union un2 u4 ATTRIBUTE_UNUSED,
- union un2 u5 ATTRIBUTE_UNUSED,
- union un2 u6 ATTRIBUTE_UNUSED,
- union un2 u7 ATTRIBUTE_UNUSED,
- union un2 u8 ATTRIBUTE_UNUSED)
-{
- check_m256_arguments;
-}
-
-void
-check_union_passing3(union un3 u1 ATTRIBUTE_UNUSED,
- union un3 u2 ATTRIBUTE_UNUSED,
- union un3 u3 ATTRIBUTE_UNUSED,
- union un3 u4 ATTRIBUTE_UNUSED,
- union un3 u5 ATTRIBUTE_UNUSED,
- union un3 u6 ATTRIBUTE_UNUSED,
- union un3 u7 ATTRIBUTE_UNUSED,
- union un3 u8 ATTRIBUTE_UNUSED)
-{
- check_m256_arguments;
-}
-
-void
-check_union_passing4(union un4 u ATTRIBUTE_UNUSED)
-{
- /* Check the passing on the stack by comparing the address of the
- stack elements to the expected place on the stack. */
- assert ((unsigned long)&u.x == rsp+8);
- assert ((unsigned long)&u.ld == rsp+8);
-}
-
-void
-check_union_passing5(union un5 u ATTRIBUTE_UNUSED)
-{
- /* Check the passing on the stack by comparing the address of the
- stack elements to the expected place on the stack. */
- assert ((unsigned long)&u.x == rsp+8);
- assert ((unsigned long)&u.i == rsp+8);
-}
-
-#define check_union_passing1 WRAP_CALL(check_union_passing1)
-#define check_union_passing2 WRAP_CALL(check_union_passing2)
-#define check_union_passing3 WRAP_CALL(check_union_passing3)
-#define check_union_passing4 WRAP_CALL(check_union_passing4)
-#define check_union_passing5 WRAP_CALL(check_union_passing5)
-
-static void
-avx_test (void)
-{
- union un1 u1[8];
- union un2 u2[8];
- union un3 u3[8];
- union un4 u4;
- union un5 u5;
- int i;
-
- for (i = 0; i < 8; i++)
- u1[i].x = (__m256){32+i, 0, i, 0, -i, 0, i - 12, i + 8};
-
- clear_struct_registers;
- for (i = 0; i < 8; i++)
- fregs.ymm0._m256[i] = u1[i].x;
- num_fregs = 8;
- check_union_passing1(u1[0], u1[1], u1[2], u1[3],
- u1[4], u1[5], u1[6], u1[7]);
-
- clear_struct_registers;
- for (i = 0; i < 8; i++)
- {
- u2[i].x = u1[i].x;
- fregs.ymm0._m256[i] = u2[i].x;
- }
- num_fregs = 8;
- check_union_passing2(u2[0], u2[1], u2[2], u2[3],
- u2[4], u2[5], u2[6], u2[7]);
-
- clear_struct_registers;
- for (i = 0; i < 8; i++)
- {
- u3[i].x = u1[i].x;
- fregs.ymm0._m256[i] = u3[i].x;
- }
- num_fregs = 8;
- check_union_passing3(u3[0], u3[1], u3[2], u3[3],
- u3[4], u3[5], u3[6], u3[7]);
-
- check_union_passing4(u4);
- check_union_passing5(u5);
-}