https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95231
Bug ID: 95231
Summary: [11 Regression] error: the first argument of a
‘vec_cond_expr’ must be of a boolean vector type of
the since r11-451-gfe168751c5c1c517
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Target Milestone: ---
I see the following ICE:
$ g++ /home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C
-O3 -fnon-call-exceptions
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C: In
function ‘int main()’:
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: unsupported operation or type for vector comparison returning a boolean
36 | }
| ^
vector(4) float
vector(4) float
_25 = _13 > _23;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: the first argument of a ‘vec_cond_expr’ must be of a boolean vector type
of the same number of elements as the result
vector(4) int
bool
_24 = VEC_COND_EXPR <_25, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: unsupported operation or type for vector comparison returning a boolean
vector(4) float
vector(4) float
_29 = _26 > _27;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: the first argument of a ‘vec_cond_expr’ must be of a boolean vector type
of the same number of elements as the result
vector(4) int
bool
_28 = VEC_COND_EXPR <_29, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: unsupported operation or type for vector comparison returning a boolean
vector(4) float
vector(4) float
_33 = _30 > _31;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: the first argument of a ‘vec_cond_expr’ must be of a boolean vector type
of the same number of elements as the result
vector(4) int
bool
_32 = VEC_COND_EXPR <_33, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: unsupported operation or type for vector comparison returning a boolean
vector(4) float
vector(4) float
_37 = _34 > _35;
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
error: the first argument of a ‘vec_cond_expr’ must be of a boolean vector type
of the same number of elements as the result
vector(4) int
bool
_36 = VEC_COND_EXPR <_37, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
during GIMPLE pass: einline
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/other/vector-compare.C:36:1:
internal compiler error: verify_gimple failed
0x10f8d61 verify_gimple_in_cfg(function*, bool)
/home/marxin/Programming/gcc/gcc/tree-cfg.c:5461
0xfd4e7f execute_function_todo
/home/marxin/Programming/gcc/gcc/passes.c:1985
0xfd5c2e execute_todo
/home/marxin/Programming/gcc/gcc/passes.c:2039
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.