/* { dg-do compile} */ /* { dg-options "-msse4.1 -O2" } */ /* { dg-final { scan-assembler-not "pinsr" } } */ typedef struct { long long a; int b; } st1; typedef struct { long long a; int b; short c; } st2; typedef struct { long long a; int b; short c; char d; } st3; typedef struct { int b; long long a; } st4; typedef struct { short c; int b; long long a; } st5; typedef struct { char d; short c; int b; long long a; } st6; st1 foo1 (long long a, int b) { return (st1){a, b}; } st2 foo2 (long long a, int b, short c) { return (st2){a, b, c}; } st3 foo3 (long long a, int b, short c, char d) { return (st3){a, b, c, d}; } st4 foo4 (long long a, int b) { return (st4){b, a}; } st5 foo5 (long long a, int b, short c) { return (st5){c, b, a}; } st6 foo6 (long long a, int b, short c, char d) { return (st6){d, c, b, a}; }