* config/mips/mips.md (*extenddi_truncate<mode>,
[gcc.git] / gcc / testsuite / gcc.target / mips / octeon-exts-2.c
1 /* { dg-do compile } */
2 /* { dg-options "-O -march=octeon -meb -dp" } */
3 /* Don't match exts in sign-extension. */
4 /* { dg-final { scan-assembler-times "\texts\t\[^\\n\]*extv" 4 } } */
5
6 struct bar
7 {
8 unsigned long long a:1;
9 long long b:14;
10 unsigned long long c:48;
11 long long d:1;
12 };
13
14 NOMIPS16 int
15 f1 (struct bar *s, int a)
16 {
17 return (int) s->b + a;
18 }
19
20 NOMIPS16 char
21 f2 (struct bar *s)
22 {
23 return s->d + 1;
24 }
25
26 NOMIPS16 int
27 f3 ()
28 {
29 struct bar s;
30 asm ("" : "=r"(s));
31 return (int) s.b + 1;
32 }
33
34 NOMIPS16 long long
35 f4 (struct bar *s)
36 {
37 return s->d;
38 }