1 /* PR target/100075 */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target aarch64_little_endian } */
4 /* { dg-options "-O2" } */
5 /* { dg-final { scan-assembler-not {\tsbfx\tx[0-9]+, x[0-9]+, 16, 16} } } */
6 /* { dg-final { scan-assembler {\tneg\tw[0-9]+, w[0-9]+, asr 16} } } */
7 /* { dg-final { scan-assembler {\textr\tw[0-9]+, w[0-9]+, w[0-9]+, 16} } } */
8
9 struct S { short x, y; };
10
11 struct S
12 f1 (struct S p)
13 {
14 return (struct S) { -p.y, p.x };
15 }
16
17 struct S
18 f2 (struct S p)
19 {
20 return (struct S) { p.y, -p.x };
21 }