[PATCH] D127115: [RFC][DAGCombine] Make sure combined nodes are added back to the worklist in topological order.
Amaury SECHET via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 11 12:50:28 PDT 2022
deadalnix added inline comments.
================
Comment at: llvm/test/CodeGen/X86/load-partial.ll:117
+; SSE2-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]
+; SSE2-NEXT: retq
+;
----------------
Before:
```
SelectionDAG has 9 nodes:
t0: ch = EntryToken
t2: i64,ch = CopyFromReg t0, Register:i64 %0
t33: v4f32,ch = load<(dereferenceable load (s128) from %ir.2, align 4)> t0, t2, undef:i64
t22: ch,glue = CopyToReg t0, Register:v4f32 $xmm0, t33
t23: ch = X86ISD::RET_FLAG t22, TargetConstant:i32<0>, Register:v4f32 $xmm0, t22:1
```
After:
```
SelectionDAG has 19 nodes:
t0: ch = EntryToken
t2: i64,ch = CopyFromReg t0, Register:i64 %0
t31: f64,ch = load<(dereferenceable load (s64) from %ir.2, align 4)> t0, t2, undef:i64
t32: v2f64 = scalar_to_vector t31
t33: v4f32 = bitcast t32
t15: i64 = add nuw t2, Constant:i64<8>
t16: f32,ch = load<(dereferenceable load (s32) from %ir.8)> t0, t15, undef:i64
t35: v4f32 = scalar_to_vector t16
t38: v4f32 = X86ISD::SHUFP t35, t33, TargetConstant:i8<48>
t40: v4f32 = X86ISD::SHUFP t33, t38, TargetConstant:i8<-124>
t22: ch,glue = CopyToReg t0, Register:v4f32 $xmm0, t40
t23: ch = X86ISD::RET_FLAG t22, TargetConstant:i32<0>, Register:v4f32 $xmm0, t22:1
```
This is definitively serious.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127115/new/
https://reviews.llvm.org/D127115
More information about the llvm-commits
mailing list