| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fno-schedule-insns -fno-schedule-insns2" } */ | |
| /* { dg-final { check-function-bodies "**" "" "" { target { le } } } } */ | |
| #include <arm_neon.h> | |
| /* | |
| ** f_s8: | |
| ** dup v0.16b, w0 | |
| ** movi (v[0-9]+)\.8b, 0x1 | |
| ** ins v0.b\[15\], \1\.b\[0\] | |
| ** ret | |
| */ | |
| int8x16_t f_s8(int8_t x) | |
| { | |
| return (int8x16_t) { x, x, x, x, x, x, x, x, | |
| x, x, x, x, x, x, x, 1 }; | |
| } | |
| /* | |
| ** f_s16: | |
| ** dup v0.8h, w0 | |
| ** movi (v[0-9]+)\.4h, 0x1 | |
| ** ins v0.h\[7\], \1\.h\[0\] | |
| ** ret | |
| */ | |
| int16x8_t f_s16(int16_t x) | |
| { | |
| return (int16x8_t) { x, x, x, x, x, x, x, 1 }; | |
| } | |
| /* | |
| ** f_s32: | |
| ** dup v0.4s, w0 | |
| ** movi (v[0-9]+)\.2s, 0x1 | |
| ** ins v0.s\[3\], \1\.s\[0\] | |
| ** ret | |
| */ | |
| int32x4_t f_s32(int32_t x) | |
| { | |
| return (int32x4_t) { x, x, x, 1 }; | |
| } | |
| /* | |
| ** f_s64: | |
| ** fmov d0, x0 | |
| ** mov w([0-9]+), 1 | |
| ** ins v0\.d\[1\], x\1 | |
| ** ret | |
| */ | |
| int64x2_t f_s64(int64_t x) | |
| { | |
| return (int64x2_t) { x, 1 }; | |
| } |