1 /* -mel version of octeon-exts-2.c.  */
2 /* { dg-do compile } */
3 /* { dg-options "-march=octeon -mel" } */
4 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
5 /* { dg-final { scan-assembler-times "\texts\t" 4 } } */
6 
7 struct bar
8 {
9   long long d:1;
10   unsigned long long c:48;
11   long long b:14;
12   unsigned long long a:1;
13 };
14 
15 NOMIPS16 int
f1(struct bar * s,int a)16 f1 (struct bar *s, int a)
17 {
18   return (int) s->b + a;
19 }
20 
21 NOMIPS16 char
f2(struct bar * s)22 f2 (struct bar *s)
23 {
24   return s->d + 1;
25 }
26 
27 NOMIPS16 int
f3()28 f3 ()
29 {
30   struct bar s;
31   asm ("" : "=r"(s));
32   return (int) s.b + 1;
33 }
34 
35 NOMIPS16 long long
f4(struct bar * s)36 f4 (struct bar *s)
37 {
38   return s->d;
39 }
40