| /* PR target/100549 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O -mavx2" } */ |
| |
| typedef char v16qi __attribute__ ((vector_size (16))); |
| typedef char v32qi __attribute__ ((vector_size (32))); |
| typedef short v8hi __attribute__ ((vector_size (16))); |
| typedef short v16hi __attribute__ ((vector_size (32))); |
| typedef int v4si __attribute__ ((vector_size (16))); |
| typedef int v8si __attribute__ ((vector_size (32))); |
| typedef long long v2di __attribute__ ((vector_size (16))); |
| typedef long long v4di __attribute__ ((vector_size (32))); |
| |
| v16qi |
| f1 (v16qi a) |
| { |
| return __builtin_ia32_pcmpeqb128 (a, a); |
| } |
| |
| v8hi |
| f2 (v8hi a) |
| { |
| return __builtin_ia32_pcmpeqw128 (a, a); |
| } |
| |
| v4si |
| f3 (v4si a) |
| { |
| return __builtin_ia32_pcmpeqd128 (a, a); |
| } |
| |
| v2di |
| f4 (v2di a) |
| { |
| return __builtin_ia32_pcmpeqq (a, a); |
| } |
| |
| v16qi |
| f5 (v16qi a) |
| { |
| return __builtin_ia32_pcmpgtb128 (a, a); |
| } |
| |
| v8hi |
| f6 (v8hi a) |
| { |
| return __builtin_ia32_pcmpgtw128 (a, a); |
| } |
| |
| v4si |
| f7 (v4si a) |
| { |
| return __builtin_ia32_pcmpgtd128 (a, a); |
| } |
| |
| v2di |
| f8 (v2di a) |
| { |
| return __builtin_ia32_pcmpgtq (a, a); |
| } |
| |
| v32qi |
| f9 (v32qi a) |
| { |
| return __builtin_ia32_pcmpeqb256 (a, a); |
| } |
| |
| v16hi |
| f10 (v16hi a) |
| { |
| return __builtin_ia32_pcmpeqw256 (a, a); |
| } |
| |
| v8si |
| f11 (v8si a) |
| { |
| return __builtin_ia32_pcmpeqd256 (a, a); |
| } |
| |
| v4di |
| f12 (v4di a) |
| { |
| return __builtin_ia32_pcmpeqq256 (a, a); |
| } |
| |
| v32qi |
| f13 (v32qi a) |
| { |
| return __builtin_ia32_pcmpgtb256 (a, a); |
| } |
| |
| v16hi |
| f14 (v16hi a) |
| { |
| return __builtin_ia32_pcmpgtw256 (a, a); |
| } |
| |
| v8si |
| f15 (v8si a) |
| { |
| return __builtin_ia32_pcmpgtd256 (a, a); |
| } |
| |
| v4di |
| f16 (v4di a) |
| { |
| return __builtin_ia32_pcmpgtq256 (a, a); |
| } |