/* { dg-do compile } */ /* { dg-options "-O2" } */ /* { dg-require-effective-target lp64 } */ #include /* **set128bits: ** dup v([0-9]+).16b, w1 ** str q\1, \[x0\] ** ret */ void __attribute__((__noinline__)) set128bits (int64_t *src, char c) { __builtin_memset (src, c, 2*sizeof(int64_t)); } /* **set128bitszero: ** stp xzr, xzr, \[x0\] ** ret */ void __attribute__((__noinline__)) set128bitszero (int64_t *src) { __builtin_memset (src, 0, 2*sizeof(int64_t)); } /* ** set128bitsplus: ** dup v([0-9]+).16b, w1 ** str q\1, \[x0\] ** str q\1, \[x0, 12\] ** ret */ void __attribute__((__noinline__)) set128bitsplus (int64_t *src, char c) { __builtin_memset (src, c, 7*sizeof(int32_t)); } /* ** set256bits: ** movi v([0-9]+).16b, 0x63 ** stp q\1, q\1, \[x0\] ** ret */ void __attribute__((__noinline__)) set256bits (int64_t *src) { __builtin_memset (src, 'c', 4*sizeof(int64_t)); } /* **set256bitszero: ** stp xzr, xzr, \[x0\] ** stp xzr, xzr, \[x0, 16\] ** ret */ void __attribute__((__noinline__)) set256bitszero (int64_t *src) { __builtin_memset (src, 0, 4*sizeof(int64_t)); } /* ** set256bitsplus: ** movi v([0-9]+).16b, 0x63 ** stp q\1, q\1, \[x0\] ** str q\1, \[x0, 32\] ** str d\1, \[x0, 48\] ** ret */ void __attribute__((__noinline__)) set256bitsplus (int64_t *src) { __builtin_memset (src, 'c', 7*sizeof(int64_t)); } /* { dg-final { check-function-bodies "**" "" "" } } */