https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121849
Bug ID: 121849
Summary: __builtin_shufflevector does not work on powerpc (?):
error: invalid element index to
'__builtin_shufflevector'
Product: gcc
Version: 14.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: vital.had at gmail dot com
CC: iains at gcc dot gnu.org
Target Milestone: ---
Target: powerpc-apple-darwin
See: https://github.com/simd-everywhere/simde/issues/1313
This is probably a gcc issue rather than simde?
[503/1748] /opt/local/bin/gcc-mp-14 -Itest/arm/neon/ext-emul-c.p
-Itest/arm/neon -I../simde-0.7.2/test/arm/neon -I. -I../simde-0.7.2
-I/opt/local/include -fdiagnostics-color=always -Wall -Winvalid-pch -std=c99
-O0 -g -pipe -Os -arch ppc -fopenmp-simd -DSIMDE_ENABLE_OPENMP -Wno-psabi
-DSIMDE_TEST_BARE -DSIMDE_NO_NATIVE -MD -MQ test/arm/neon/ext-emul-c.p/ext.c.o
-MF test/arm/neon/ext-emul-c.p/ext.c.o.d -o test/arm/neon/ext-emul-c.p/ext.c.o
-c ../simde-0.7.2/test/arm/neon/ext.c
FAILED: [code=1] test/arm/neon/ext-emul-c.p/ext.c.o
/opt/local/bin/gcc-mp-14 -Itest/arm/neon/ext-emul-c.p -Itest/arm/neon
-I../simde-0.7.2/test/arm/neon -I. -I../simde-0.7.2 -I/opt/local/include
-fdiagnostics-color=always -Wall -Winvalid-pch -std=c99 -O0 -g -pipe -Os -arch
ppc -fopenmp-simd -DSIMDE_ENABLE_OPENMP -Wno-psabi -DSIMDE_TEST_BARE
-DSIMDE_NO_NATIVE -MD -MQ test/arm/neon/ext-emul-c.p/ext.c.o -MF
test/arm/neon/ext-emul-c.p/ext.c.o.d -o test/arm/neon/ext-emul-c.p/ext.c.o -c
../simde-0.7.2/test/arm/neon/ext.c
In file included from ../simde-0.7.2/test/arm/neon/../../test.h:6,
from ../simde-0.7.2/test/arm/neon/test-neon.h:4,
from ../simde-0.7.2/test/arm/neon/ext.c:3:
../simde-0.7.2/test/arm/neon/ext.c: In function 'test_simde_vext_f32':
../simde-0.7.2/test/arm/neon/../../../simde/simde-common.h:251:69: error:
invalid element index '(signed char)simde_vext_f32_n' to
'__builtin_shufflevector'
251 | # define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...)
__builtin_shufflevector(a, b, __VA_ARGS__)
|
^~~~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/arm/neon/ext.h:65:36: note: in
expansion of macro 'SIMDE_SHUFFLE_VECTOR_'
65 | simde_vext_f32_r_.values = SIMDE_SHUFFLE_VECTOR_(32, 8,
simde_float32x2_to_private(a).values, simde_float32x2_to_private(b).values, \
| ^~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-constify.h:62:24: note: in
expansion of macro 'simde_vext_f32'
62 | case 0: result = func_name(__VA_ARGS__, 0); break; \
| ^~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c:58:5: note: in expansion of macro
'SIMDE_CONSTIFY_2_'
58 | SIMDE_CONSTIFY_2_(simde_vext_f32, r, (HEDLEY_UNREACHABLE(), a), n,
a, b);
| ^~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-common.h:251:69: error:
invalid element index '(signed char)simde_vext_f32_n' to
'__builtin_shufflevector'
251 | # define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...)
__builtin_shufflevector(a, b, __VA_ARGS__)
|
^~~~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/arm/neon/ext.h:65:36: note: in
expansion of macro 'SIMDE_SHUFFLE_VECTOR_'
65 | simde_vext_f32_r_.values = SIMDE_SHUFFLE_VECTOR_(32, 8,
simde_float32x2_to_private(a).values, simde_float32x2_to_private(b).values, \
| ^~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-constify.h:63:24: note: in
expansion of macro 'simde_vext_f32'
63 | case 1: result = func_name(__VA_ARGS__, 1); break; \
| ^~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c:58:5: note: in expansion of macro
'SIMDE_CONSTIFY_2_'
58 | SIMDE_CONSTIFY_2_(simde_vext_f32, r, (HEDLEY_UNREACHABLE(), a), n,
a, b);
| ^~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c: In function 'test_simde_vext_f64':
../simde-0.7.2/test/arm/neon/../../../simde/simde-common.h:251:69: error:
invalid element index '(signed char)simde_vext_f64_n' to
'__builtin_shufflevector'
251 | # define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...)
__builtin_shufflevector(a, b, __VA_ARGS__)
|
^~~~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/arm/neon/ext.h:105:36: note: in
expansion of macro 'SIMDE_SHUFFLE_VECTOR_'
105 | simde_vext_f64_r_.values = SIMDE_SHUFFLE_VECTOR_(64, 8,
simde_float64x1_to_private(a).values, simde_float64x1_to_private(b).values, \
| ^~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c:119:27: note: in expansion of macro
'simde_vext_f64'
119 | simde_float64x1_t r = simde_vext_f64(a, b, 0);
| ^~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c: In function 'test_simde_vext_s8':
../simde-0.7.2/test/arm/neon/../../../simde/simde-common.h:251:69: error:
invalid element index '(signed char)simde_vext_s8_n' to
'__builtin_shufflevector'
251 | # define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...)
__builtin_shufflevector(a, b, __VA_ARGS__)
|
^~~~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/arm/neon/ext.h:146:35: note: in
expansion of macro 'SIMDE_SHUFFLE_VECTOR_'
146 | simde_vext_s8_r_.values = SIMDE_SHUFFLE_VECTOR_(8, 8,
simde_int8x8_to_private(a).values, simde_int8x8_to_private(b).values, \
| ^~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-constify.h:82:24: note: in
expansion of macro 'simde_vext_s8'
82 | case 0: result = func_name(__VA_ARGS__, 0); break; \
| ^~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c:190:5: note: in expansion of macro
'SIMDE_CONSTIFY_8_'
190 | SIMDE_CONSTIFY_8_(simde_vext_s8, r, (HEDLEY_UNREACHABLE(), a), n,
a, b);
| ^~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-common.h:251:69: error:
invalid element index '(signed char)simde_vext_s8_n' to
'__builtin_shufflevector'
251 | # define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...)
__builtin_shufflevector(a, b, __VA_ARGS__)
|
^~~~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/arm/neon/ext.h:146:35: note: in
expansion of macro 'SIMDE_SHUFFLE_VECTOR_'
146 | simde_vext_s8_r_.values = SIMDE_SHUFFLE_VECTOR_(8, 8,
simde_int8x8_to_private(a).values, simde_int8x8_to_private(b).values, \
| ^~~~~~~~~~~~~~~~~~~~~
../simde-0.7.2/test/arm/neon/../../../simde/simde-constify.h:83:24: note: in
expansion of macro 'simde_vext_s8'
83 | case 1: result = func_name(__VA_ARGS__, 1); break; \
| ^~~~~~~~~
../simde-0.7.2/test/arm/neon/ext.c:190:5: note: in expansion of macro
'SIMDE_CONSTIFY_8_'
190 | SIMDE_CONSTIFY_8_(simde_vext_s8, r, (HEDLEY_UNREACHABLE(), a), n,
a, b);
| ^~~~~~~~~~~~~~~~~