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.

Reply via email to