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

            Bug ID: 119145
           Summary: [15 Regression] ICE in expanding IFN_MASK_CALL from
                    vector math
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tnfchris at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64*

The following testcase:

typedef short Quantum;
Quantum ComplexImages_Bi_0, ComplexImages_Ai_0, ComplexImages_Ai_1;
long ComplexImages_x;
__attribute__((__simd__)) double atan2(double, double);
typedef enum { MagickFalse } MagickBooleanType;

struct {
    MagickBooleanType matte;
} *ComplexImages_images;

typedef struct {
    Quantum blue, opacity;
} PixelPacket;

typedef enum { MagnitudePhaseComplexOperator } ComplexOperator;
PixelPacket ComplexImages_Ar, ComplexImages_Br;
PixelPacket *ComplexImages_Ci;
ComplexOperator ComplexImages_op;

void ComplexImages() {
    for (; ComplexImages_x; ComplexImages_x++) switch (ComplexImages_op) {
            case MagnitudePhaseComplexOperator:
                if (ComplexImages_images->matte)
                    ComplexImages_Ci->opacity =
                        atan2(ComplexImages_Ai_1, ComplexImages_Ar.opacity);
                ComplexImages_Ci->blue =
                    1.0 / (ComplexImages_Ai_0 * ComplexImages_Br.blue +
                           ComplexImages_Ar.blue * ComplexImages_Bi_0);
        }
}

compiled with -march=armv9-a -fno-vect-cost-model -Ofast
ICEs with:

during RTL pass: expand
fourier.i: In function 'ComplexImages':
fourier.i:22:13: internal compiler error: in expand_MASK_CALL, at
internal-fn.cc:5368
   22 |             atan2(ComplexImages_Ai_1, ComplexImages_Ar.opacity);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x36c5afb internal_error(char const*, ...)
        ../../gcc/gcc/gcc/diagnostic-global-context.cc:517
0x369082f fancy_abort(char const*, int, char const*)
        ../../gcc/gcc/gcc/diagnostic.cc:1722
0x158baf3 expand_MASK_CALL(internal_fn, gcall*)
        ../../gcc/gcc/gcc/internal-fn.cc:5368
0x158b0ab expand_internal_call(internal_fn, gcall*)
        ../../gcc/gcc/gcc/internal-fn.cc:5273
0x158b0d3 expand_internal_call(gcall*)
        ../../gcc/gcc/gcc/internal-fn.cc:5281
0x11a8c6b expand_call_stmt
        ../../gcc/gcc/gcc/cfgexpand.cc:3049
0x11ace3b expand_gimple_stmt_1
        ../../gcc/gcc/gcc/cfgexpand.cc:4217
0x11ad4ff expand_gimple_stmt
        ../../gcc/gcc/gcc/cfgexpand.cc:4364
0x11b595f expand_gimple_basic_block
        ../../gcc/gcc/gcc/cfgexpand.cc:6427
0x11b817b execute
        ../../gcc/gcc/gcc/cfgexpand.cc:7176

Reply via email to