blob: 20e939fbb85b437c53f3ae838f9b1250774babaf [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O3 -fpic -msve-vector-bits=256 -fno-schedule-insns" } */
/* { dg-require-effective-target fpic } */
/* { dg-require-effective-target tls_native } */
typedef float v8si __attribute__ ((vector_size (32)));
__thread v8si tx;
v8si foo (v8si a, v8si b, v8si c)
{
v8si y;
/* There is nothing stopping the compiler from making the tls call before
loading the input variables off the stack. However, there appears to
be no way in C of enforcing this. Thankfully the compiler doesn't
do this reordering. */
y = a + tx + b + c;
return y + 7;
}
/* { dg-final { scan-assembler-times {\tstr\tz[0-9]+,} 3 } } */