| /* PR target/111023 */ |
| /* { dg-do compile { target { ! ia32 } } } */ |
| /* { dg-options "-O2 -mtune=icelake-server -ftree-vectorize -msse2 -mno-sse4.1" } */ |
| |
| typedef unsigned char v8qi __attribute__((vector_size (8))); |
| typedef unsigned short v4hi __attribute__((vector_size (8))); |
| typedef unsigned int v2si __attribute__((vector_size (8))); |
| |
| void |
| v4hi_v4qi (v4hi *dst, v8qi src) |
| { |
| unsigned short tem[4]; |
| tem[0] = src[0]; |
| tem[1] = src[1]; |
| tem[2] = src[2]; |
| tem[3] = src[3]; |
| dst[0] = *(v4hi *) tem; |
| } |
| |
| /* { dg-final { scan-assembler "punpcklbw" } } */ |
| |
| void |
| v2si_v2hi (v2si *dst, v4hi src) |
| { |
| unsigned int tem[2]; |
| tem[0] = src[0]; |
| tem[1] = src[1]; |
| dst[0] = *(v2si *) tem; |
| } |
| |
| /* { dg-final { scan-assembler "punpcklwd" } } */ |