diff options
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.c | 143 |
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); -} |