[Bug target/117990] [15 regression] RISC-V: Miscompile at -O3 zvl 256 since r15-4746-g30435cc2610

pan2.li at intel dot com gcc-bugzilla@gcc.gnu.org
Wed Dec 11 05:14:17 GMT 2024


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

--- Comment #5 from Li Pan <pan2.li at intel dot com> ---
The tree optimized looks right up to a point.

   5   │ int main ()
   6   │ {
   7   │   vector(8) int vect__4.8;
   8   │   vector(8) char vect__3.7;
   9   │   vector(8) char D.2823;
  10   │   int _5;
  11   │   int _8;
  12   │   vector(8) char _26(D);
  13   │
  14   │   <bb 2> [local count: 97603129]:
  15   │   d[0] = 9;
  16   │   d[10] = 9;
  17   │   d[20] = 9;
  18   │   d[30] = 9;
  19   │   d[40] = 9;
  20   │   d[50] = 9;
  21   │   d[60] = 9;
  22   │   d[70] = 9;
  23   │   d[80] = 9;
  24   │   d[90] = 9;
  25   │   vect__3.7_27 = .MASK_LEN_STRIDED_LOAD (&MEM <char[225]> [(void *)&d
+ 30B], 10, { 0, 0, 0, 0, 0, 0, 0, 0 }, { -1, -1, -1, -1, -1, -1, -1, -1 },
_26(D), 7, 0);
  26   │   vect__4.8_28 = (vector(8) int) vect__3.7_27;
  27   │   .MASK_LEN_STORE (&MEM <int[10]> [(void *)&e + 12B], 32B, { -1, -1,
-1, -1, -1, -1, -1, -1 }, 7, 0, vect__4.8_28);
  28   │   _5 = e[5];
  29   │   if (_5 != 9)
  30   │     goto <bb 3>; [51.11%]
  31   │   else
  32   │     goto <bb 4>; [48.89%]
  33   │
  34   │   <bb 3> [local count: 49884959]:
  35   │
  36   │   <bb 4> [local count: 97603128]:
  37   │   # _8 = PHI <123(3), 0(2)>
  38   │   return _8;
  39   │
  40   │ }

But the asm dump looks not that correct.

main:
        lui     a5,%hi(.LANCHOR0)
        addi    a5,a5,%lo(.LANCHOR0)
        li      a4,9
        sb      a4,30(a5)
        addi    a3,a5,30
        vsetivli        zero,7,e32,m1,ta,ma
        li      a2,10
        vlse8.v v2,0(a3),a2 // depends on 30(a5), 40(a5), ... 90(a5) but only
30(a5) has been promoted before vlse, looks incorrect memory dependencies.
        addi    a3,a5,252
        sb      a4,0(a5)
        sb      a4,10(a5)                                                      
                                                                               
                                                                               
                                     sb      a4,20(a5)
        sb      a4,40(a5)
        vzext.vf4       v1,v2
        sb      a4,50(a5)
        sb      a4,60(a5)
        vse32.v v1,0(a3)
        li      a0,0
        sb      a4,70(a5)
        sb      a4,80(a5)
        sb      a4,90(a5)
        lw      a5,260(a5)
        beq     a5,a4,.L4
        li      a0,123


More information about the Gcc-bugs mailing list