1 /* Verify if VRs are saved and restored.  */
2 
3 /* { dg-do run } */
4 /* { dg-require-effective-target s390_vx } */
5 /* { dg-options "-O3 -march=z13 -mzarch" } */
6 
7 typedef int __attribute__((vector_size(16))) v4si;
8 
9 v4si __attribute__((noinline))
foo(v4si a)10 foo (v4si a)
11 {
12   a += (v4si){ 1, 1, 1, 1 };
13   if (__builtin_tbegin (0) == 0)
14     {
15       a += (v4si){ 1, 1, 1, 1 };
16       __builtin_tabort (256);
17       __builtin_tend ();
18     }
19   else
20     a -= (v4si){ 1, 1, 1, 1 };
21 
22   return a;
23 }
24 
25 int
main()26 main ()
27 {
28   v4si a = (v4si){ 0, 0, 0, 0 };
29 
30   a = foo (a);
31 
32   if (a[0] != 0)
33     __builtin_abort ();
34 }
35