| /* { 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}; |
| } |