| /* { dg-do run } */ |
| /* { dg-options "-O2 -mavx" } */ |
| /* { dg-require-effective-target avx } */ |
| |
| #include "avx-check.h" |
| |
| void |
| __attribute__ ((noipa)) |
| mtest(char *dest) |
| { |
| __m256i ymm1 = _mm256_set1_epi8((char)0x1); |
| _mm256_storeu_si256((__m256i *)(dest + 32), ymm1); |
| _mm256_zeroupper(); |
| __m256i ymm2 = _mm256_set1_epi8((char)0x1); |
| _mm256_storeu_si256((__m256i *)dest, ymm2); |
| } |
| |
| void |
| avx_test () |
| { |
| char buf[64]; |
| for (int i = 0; i != 64; i++) |
| buf[i] = 2; |
| mtest (buf); |
| |
| for (int i = 0; i < 32; ++i) |
| if (buf[i] != 1) |
| __builtin_abort (); |
| } |