[llvm] [SDag] Notify listeners when deleting a node (PR #66991)

Sergei Barannikov via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 30 10:38:12 PDT 2024


================
@@ -6519,7 +6519,7 @@ define <16 x i16> @shuffle_v16i16_03_04_05_06_07_16_17_26_11_12_13_14_15_24_25_2
 ; AVX2-LABEL: shuffle_v16i16_03_04_05_06_07_16_17_26_11_12_13_14_15_24_25_26:
 ; AVX2:       # %bb.0:
 ; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]
-; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]
+; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm0[2,3,2,3]
----------------
s-barannikov wrote:

Unfortunately, it doesn't. Here is the DAG:
```
    t2: v16i16,ch = CopyFromReg t0, Register:v16i16 %0
    t4: v16i16,ch = CopyFromReg t0, Register:v16i16 %1
  t31: v16i16 = X86ISD::BLENDI t2, t4, TargetConstant:i8<7>
          t25: v4i64 = bitcast t31
        t70: v4i64 = X86ISD::VPERMI t25, TargetConstant:i8<-18>
      t74: v16i16 = bitcast t70
    t65: v16i16 = X86ISD::BLENDI t31, t74, TargetConstant:i8<4>
```
```
t65: (BLENDI (BLENDI t2, t4, 7), (VPERMI (BLENDI t2, t4, 7), -18), 4)
```

I guess the main issue here is that `t31 = (BLENDI t2, t4, 7)` has more than one use?


https://github.com/llvm/llvm-project/pull/66991


More information about the llvm-commits mailing list