case E_V4SImode:
case E_V2DImode:
case E_V1TImode:
- case E_TImode:
{
machine_mode srcmode, dstmode;
rtx d, pat;
case E_V4SImode:
case E_V2DImode:
case E_V1TImode:
- case E_TImode:
{
machine_mode srcmode, dstmode;
rtx (*pinsr)(rtx, rtx, rtx, rtx);
--- /dev/null
+/* { 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};
+}