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)16f1 (struct bar *s, int a) 17 { 18 return (int) s->b + a; 19 } 20 21 NOMIPS16 char f2(struct bar * s)22f2 (struct bar *s) 23 { 24 return s->d + 1; 25 } 26 27 NOMIPS16 int f3()28f3 () 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)36f4 (struct bar *s) 37 { 38 return s->d; 39 } 40