1 /* { dg-do compile } */ 2 /* { dg-options "-O -msve-vector-bits=512 -g" } */ 3 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */ 4 5 /* 6 ** callee_pred: 7 ** ldr p0, \[x0\] 8 ** ret 9 */ 10 __SVBool_t __attribute__((noipa)) callee_pred(__SVBool_t * ptr)11callee_pred (__SVBool_t *ptr) 12 { 13 return *ptr; 14 } 15 16 #include <arm_sve.h> 17 18 /* 19 ** caller_pred: 20 ** ... 21 ** bl callee_pred 22 ** cntp x0, p0, p0.b 23 ** ldp x29, x30, \[sp\], 16 24 ** ret 25 */ 26 uint64_t __attribute__((noipa)) caller_pred(__SVBool_t * ptr1)27caller_pred (__SVBool_t *ptr1) 28 { 29 __SVBool_t p = callee_pred (ptr1); 30 return svcntp_b8 (p, p); 31 } 32