Viewing file: saves_3.c (1.61 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-O -g" } */ /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
#include <arm_sve.h>
int sve_callee (svint8_t);
/* ** standard_caller: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.b, #1 ** bl sve_callee ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ int standard_caller (void) { return sve_callee (svdup_s8 (1)) + 1; }
/* ** vpcs_caller: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.b, #1 ** bl sve_callee ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ __attribute__((aarch64_vector_pcs)) int vpcs_caller (void) { return sve_callee (svdup_s8 (1)) + 1; }
/* ** sve_caller: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.b, #1 ** bl sve_callee ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ int sve_caller (svbool_t p0) { return sve_callee (svdup_s8 (1)) + 1; }
/* ** standard_caller_ptr: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.h, #1 ** blr x0 ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ int standard_caller_ptr (int (*fn) (__SVInt16_t)) { return fn (svdup_s16 (1)) + 1; }
/* ** vpcs_caller_ptr: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.h, #1 ** blr x0 ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ int __attribute__((aarch64_vector_pcs)) vpcs_caller_ptr (int (*fn) (__SVInt16_t)) { return fn (svdup_s16 (1)) + 1; }
/* ** sve_caller_ptr: ** stp x29, x30, \[sp, -16\]! ** mov x29, sp ** mov z0\.h, #1 ** blr x0 ** add w0, w0, #?1 ** ldp x29, x30, \[sp\], 16 ** ret */ int sve_caller_ptr (svbool_t pg, int (*fn) (svint16_t)) { return fn (svdup_s16 (1)) + 1; }
|