Viewing file: adr_1.c (1.35 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-O2 -ftree-vectorize" } */
#include <stdint.h>
#ifndef FACTOR #define FACTOR 2 #endif
#define LOOP(TYPE) \ __attribute__ ((noipa)) \ void \ test_##TYPE (TYPE *restrict dst, TYPE *restrict src, \ int count) \ { \ for (int i = 0; i < count; ++i) \ dst[i] += src[i] * FACTOR; \ }
#define TEST_ALL(T) \ T (int8_t) \ T (int16_t) \ T (int32_t) \ T (int64_t) \ T (uint8_t) \ T (uint16_t) \ T (uint32_t) \ T (uint64_t)
TEST_ALL (LOOP)
/* { dg-final { scan-assembler-times {\tadd\tz[0-9]\.b,} 2 } } */ /* { dg-final { scan-assembler-times {\tlsl\tz[0-9]\.b,} 2 } } */ /* { dg-final { scan-assembler-not {\tadr\tz[0-9]\.b,} } } */
/* { dg-final { scan-assembler-times {\tadd\tz[0-9]\.h,} 2 } } */ /* { dg-final { scan-assembler-times {\tlsl\tz[0-9]\.h,} 2 } } */ /* { dg-final { scan-assembler-not {\tadr\tz[0-9]\.h,} } } */
/* { dg-final { scan-assembler-not {\tadd\tz[0-9]\.s,} } } */ /* { dg-final { scan-assembler-not {\tlsl\tz[0-9]\.s,} } } */ /* { dg-final { scan-assembler-times {\tadr\tz[0-9]\.s, \[z[0-9]\.s, z[0-9]\.s, lsl 1\]} 2 } } */
/* { dg-final { scan-assembler-not {\tadd\tz[0-9]\.d,} } } */ /* { dg-final { scan-assembler-not {\tlsl\tz[0-9]\.d,} } } */ /* { dg-final { scan-assembler-times {\tadr\tz[0-9]\.d, \[z[0-9]\.d, z[0-9]\.d, lsl 1\]} 2 } } */
|