167217Sn_hibma/* { dg-do run } */ 261560Sn_hibma/* { dg-require-effective-target avx } */ 3113273Smdodd/* { dg-options "-O2 -mavx" } */ 461560Sn_hibma 561560Sn_hibma#include "avx-check.h" 661560Sn_hibma 761560Sn_hibmastatic __m256i 861560Sn_hibma__attribute__((noinline)) 961560Sn_hibmafoo (char x, int i) 1061560Sn_hibma{ 1161560Sn_hibma switch (i) 1261560Sn_hibma { 1361560Sn_hibma case 31: 1461560Sn_hibma return _mm256_set_epi8 (x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1561560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 1661560Sn_hibma case 30: 1761560Sn_hibma return _mm256_set_epi8 (1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1861560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 1961560Sn_hibma case 29: 2061560Sn_hibma return _mm256_set_epi8 (1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2161560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 2261560Sn_hibma case 28: 2361560Sn_hibma return _mm256_set_epi8 (1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2461560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 2561560Sn_hibma case 27: 2661560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2797586Sru 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 2897586Sru case 26: 29187994Salfred return _mm256_set_epi8 (1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3093350Sjoe 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 3161560Sn_hibma case 25: 3261560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3393350Sjoe 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 3461560Sn_hibma case 24: 35187994Salfred return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 3667217Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 3761560Sn_hibma case 23: 3861560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 3961560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 4061560Sn_hibma case 22: 4161560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 4261560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 4361560Sn_hibma case 21: 4461560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 4561560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 4661560Sn_hibma case 20: 47225839Smav return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 48225839Smav 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 49225839Smav case 19: 5061560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 5161560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 5293351Sjoe case 18: 5361560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 54113273Smdodd 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 5561560Sn_hibma case 17: 5661560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 57187994Salfred 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 58187994Salfred case 16: 59187994Salfred return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 60187994Salfred 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 6167217Sn_hibma case 15: 6267217Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6361560Sn_hibma x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 6461560Sn_hibma case 14: 6561560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 66113273Smdodd 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 6761560Sn_hibma case 13: 6861560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6961560Sn_hibma 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 7061560Sn_hibma case 12: 7161560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 72113273Smdodd 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 7361560Sn_hibma case 11: 74113273Smdodd return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 75152763Sru 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 7661560Sn_hibma case 10: 77152763Sru return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 78113273Smdodd 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 7967217Sn_hibma case 9: 80113273Smdodd return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 81152763Sru 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1, 1); 82113273Smdodd case 8: 8361560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 84152763Sru 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1, 1); 8561560Sn_hibma case 7: 86152763Sru return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8761560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1, 1); 88152763Sru case 6: 89225839Smav return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 90225839Smav 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1, 1); 91225839Smav case 5: 92225839Smav return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9361560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1, 1); 9461560Sn_hibma case 4: 9561560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9661560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1, 1); 97115225Sru case 3: 9897586Sru return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9997586Sru 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1, 1); 10061560Sn_hibma case 2: 10161560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10297586Sru 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1, 1); 10361560Sn_hibma case 1: 10461560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10561560Sn_hibma 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x, 1); 10661560Sn_hibma case 0: 10761560Sn_hibma return _mm256_set_epi8 (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108187994Salfred 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, x); 109187994Salfred default: 110187994Salfred abort (); 111187994Salfred } 112187994Salfred} 113187994Salfred 114225839Smavstatic void 115225839Smavavx_test (void) 116225839Smav{ 117225839Smav char e = 0xa1; 118225839Smav char v[32]; 119225839Smav union256i_b u; 120225839Smav int i, j; 121225839Smav 122115225Sru for (i = 0; i < ARRAY_SIZE (v); i++) 123187994Salfred { 124187994Salfred for (j = 0; j < ARRAY_SIZE (v); j++) 12561560Sn_hibma v[j] = 1; 12661560Sn_hibma v[i] = e; 12761560Sn_hibma u.x = foo (e, i); 12861560Sn_hibma if (check_union256i_b (u, v)) 12997586Sru abort (); 13097586Sru } 13167217Sn_hibma} 13267217Sn_hibma