1 /* { dg-do compile { target { ! ia32 } } } */ 2 /* { dg-options "-O2 -mavx512vl -mavx512bw" } */ 3 4 typedef char v16qi __attribute__((vector_size (16))); 5 typedef short v8hi __attribute__((vector_size (16))); 6 7 v16qi f1(v16qi a,char b)8f1 (v16qi a, char b) 9 { 10 register v16qi c __asm ("xmm16") = a; 11 asm volatile ("" : "+v" (c)); 12 v16qi d = c; 13 ((char *) &d)[3] = b; 14 c = d; 15 asm volatile ("" : "+v" (c)); 16 return c; 17 } 18 19 /* { dg-final { scan-assembler "vpinsrb\[^\n\r]*xmm16" } } */ 20 21 v8hi f2(v8hi a,short b)22f2 (v8hi a, short b) 23 { 24 register v8hi c __asm ("xmm16") = a; 25 asm volatile ("" : "+v" (c)); 26 v8hi d = c; 27 ((short *) &d)[3] = b; 28 c = d; 29 asm volatile ("" : "+v" (c)); 30 return c; 31 } 32 33 /* { dg-final { scan-assembler "vpinsrw\[^\n\r]*xmm16" } } */ 34