/* Check if load-relative instructions are created */ /* { dg-do compile { target { s390*-*-* } } } */ /* { dg-options "-O2 -march=z10 -mzarch" } */ /* { dg-final { scan-assembler "lgfrl\t%r.?,b.4" { target { lp64 } } } } */ /* { dg-final { scan-assembler "lgfrl\t%r.?,s.12" { target { lp64 } } } } */ /* { dg-final { scan-assembler "lgrl\t%r.?,s" { target { lp64 } } } } */ /* { dg-final { scan-assembler "lrl\t%r.?,b.4" { target { ! lp64 } } } } */ /* { dg-final { scan-assembler "lrl\t%r.?,s.8" { target { ! lp64 } } } } */ /* { dg-final { scan-assembler "lrl\t%r.?,s" { target { ! lp64 } } } } */ int b[20]; struct s { long a; int b; int c; } s; struct __attribute__((packed)) s2 { char a; char b; char c; } s2; char __attribute__((aligned(1))) arr[10]; int foo() { return b[1]; } int bar() { return s.c; } long bar2() { return s.a; } int baz() { return arr[1]; }