2 /* { dg-options "-O3 -mxop" } */
3 /* { dg-require-effective-target xop } */
6 #define CHECK_H "xop-check.h"
19 #define TYPE2 long long
22 /* mingw runtime don't provide random(). */
27 signed TYPE1 a
[N
], b
[N
], g
[N
];
28 unsigned TYPE1 c
[N
], h
[N
];
29 signed TYPE2 d
[N
], e
[N
], j
[N
];
30 unsigned TYPE2 f
[N
], k
[N
];
32 __attribute__((noinline
)) void
36 for (i
= 0; i
< N
; i
++)
40 __attribute__((noinline
)) void
44 for (i
= 0; i
< N
; i
++)
48 __attribute__((noinline
)) void
52 for (i
= 0; i
< N
; i
++)
56 __attribute__((noinline
)) void
60 for (i
= 0; i
< N
; i
++)
64 __attribute__((noinline
)) void
68 for (i
= 0; i
< N
; i
++)
72 __attribute__((noinline
)) void
76 for (i
= 0; i
< N
; i
++)
80 __attribute__((noinline
)) void
84 for (i
= 0; i
< N
; i
++)
88 __attribute__((noinline
)) void
92 for (i
= 0; i
< N
; i
++)
96 __attribute__((noinline
)) void
100 for (i
= 0; i
< N
; i
++)
108 for (i
= 0; i
< N
; i
++)
111 c
[i
] = (random () << 1) | (random () & 1);
112 b
[i
] = (i
* 85) & (sizeof (TYPE1
) * __CHAR_BIT__
- 1);
114 d
[i
] = (random () << 1) | (random () & 1);
115 d
[i
] |= (unsigned long long) c
[i
] << 32;
116 e
[i
] = (i
* 85) & (sizeof (TYPE2
) * __CHAR_BIT__
- 1);
123 for (i
= 0; i
< N
; i
++)
124 if (g
[i
] != (signed TYPE1
) (a
[i
] << b
[i
])
125 || h
[i
] != (unsigned TYPE1
) (c
[i
] >> b
[i
])
126 || j
[i
] != (signed TYPE2
) (d
[i
] << e
[i
])
127 || k
[i
] != (unsigned TYPE2
) (f
[i
] >> e
[i
]))
132 for (i
= 0; i
< N
; i
++)
133 if (g
[i
] != (signed TYPE1
) (a
[i
] >> b
[i
])
134 || j
[i
] != (signed TYPE2
) (d
[i
] >> e
[i
])
135 || k
[i
] != (unsigned TYPE2
) (f
[i
] >> b
[i
]))
138 for (i
= 0; i
< N
; i
++)
139 if (j
[i
] != (signed TYPE2
) (d
[i
] << b
[i
]))
142 for (i
= 0; i
< N
; i
++)
143 if (j
[i
] != (signed TYPE2
) (d
[i
] >> b
[i
]))