Viewing file: mops_3.c (1.43 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-O2 -march=armv8.6-a+mops --param=aarch64-mops-memset-size-threshold=0" } */ /* { dg-final { check-function-bodies "**" "" "" } } */
#include <stdlib.h>
/* We want to inline variable-sized memset. ** do_it_set: ** setp \[x0\]\!, x2\!, x1 ** setm \[x0\]\!, x2\!, x1 ** sete \[x0\]\!, x2\!, x1 ** ret */ void do_it_set (char * out, int n, size_t size) { __builtin_memset (out, n, size); }
/* ** do_it_set_large: ** mov w2, 1 ** mov x1, 1024 ** setp \[x0\]\!, x1\!, x2 ** setm \[x0\]\!, x1\!, x2 ** sete \[x0\]\!, x1\!, x2 ** ret */ void do_it_set_large (char * out) { __builtin_memset (out, 1, 1024); }
/* ** do_it_set_256: ** mov w2, 1 ** mov x1, 256 ** setp \[x0\]\!, x1\!, x2 ** setm \[x0\]\!, x1\!, x2 ** sete \[x0\]\!, x1\!, x2 ** ret */ void do_it_set_256 (char * out) { __builtin_memset (out, 1, 256); }
/* ** do_it_set_255: ** mov w2, 1 ** mov x1, 255 ** setp \[x0\]\!, x1\!, x2 ** setm \[x0\]\!, x1\!, x2 ** sete \[x0\]\!, x1\!, x2 ** ret */ void do_it_set_255 (char * out) { __builtin_memset (out, 1, 255); }
/* ** do_it_set_0: ** setp \[x0\]\!, x1\!, xzr ** setm \[x0\]\!, x1\!, xzr ** sete \[x0\]\!, x1\!, xzr ** ret */ void do_it_set_0 (char * out, size_t n) { __builtin_memset (out, 0, n); }
/* ** do_it_set_0_255: ** mov x1, 255 ** setp \[x0\]\!, x1\!, xzr ** setm \[x0\]\!, x1\!, xzr ** sete \[x0\]\!, x1\!, xzr ** ret */ void do_it_set_0_255 (char * out) { __builtin_memset (out, 0, 255); }
|