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.