https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110386

            Bug ID: 110386
           Summary: [14 Regression] ICE when optimizing VPABSD/VPMULLD
                    since 07b86ab138bf8be8cb331015cd2b9775c6856ac6
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: benjsith at gmail dot com
  Target Milestone: ---

Created attachment 55394
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55394&action=edit
A preprocessed minimal repro of the VPABSD/VPMULLD issue

The following code is a minimal repro of the issue when compiled using `gcc
-mavx -O1`:

#include <immintrin.h>

__m128i do_stuff(__m128i XMM0) {
        __m128i ABS0 = _mm_abs_epi32(XMM0);
        __m128i MUL0 = _mm_mullo_epi32(ABS0, XMM0);
        __m128i MUL1 = _mm_mullo_epi32(MUL0, MUL0);
        return MUL1;
}

Godbolt link: https://godbolt.org/z/c6dK5jzco

The ICE/crash prints:

min_repro.c: In function ‘do_stuff’:
min_repro.c:3:9: error: type mismatch in binary expression
    3 | __m128i do_stuff(__m128i XMM0) {
      |         ^~~~~~~~
vector(4) unsigned int

vector(4) unsigned int

vector(4) int

_6 = _5 * _7;
during GIMPLE pass: backprop
min_repro.c:3:9: internal compiler error: verify_gimple failed
0x102003d verify_gimple_in_cfg(function*, bool, bool)
        .././../gcc/gcc/tree-cfg.cc:5646
0xebf8d0 execute_function_todo
        .././../gcc/gcc/passes.cc:2098
0xebfe3e execute_todo
        .././../gcc/gcc/passes.cc:2152

A bisect shows it started in 07b86ab138bf8be8cb331015cd2b9775c6856ac6, which is
related to a previous bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110108

I have confirmed that this still repros in the latest trunk,
6b724427aa1ec9b690e40f5206572f57e1adeda8

For triage/priority purposes: this issue was not from code I manually wrote,
but was found by a fuzzer meant to test SIMD codegen

Reply via email to