Issue 176208
Summary [RISCV] Division is costed with a reciprocal throughput of 1
Labels backend:RISC-V
Assignees bababuck
Reporter bababuck
    Division is costed as having a reciprocal throughput of  `1` on the RISCV backend.
 
`./bin/opt -mtriple=riscv64 -mattr=+m,+v -passes=slp-vectorizer t2.ll -debug-_only_=SLP -S`
```
define void @div_cost(ptr %pl, ptr %ps) {
 %gep_l0 = getelementptr inbounds i64, ptr %pl, i64 0
  %gep_l1 = getelementptr inbounds i64, ptr %pl, i64 1
  %gep_l2 = getelementptr inbounds i64, ptr %pl, i64 2
  %gep_l3 = getelementptr inbounds i64, ptr %pl, i64 3
  %gep_l4 = getelementptr inbounds i64, ptr %pl, i64 4
  %gep_l5 = getelementptr inbounds i64, ptr %pl, i64 5
  %gep_l6 = getelementptr inbounds i64, ptr %pl, i64 6
  %gep_l7 = getelementptr inbounds i64, ptr %pl, i64 7

  %load0  = load i64, ptr %gep_l0 , align 1
  %load1  = load i64, ptr %gep_l1 , align 1
  %load2  = load i64, ptr %gep_l2 , align 1
 %load3  = load i64, ptr %gep_l3 , align 1
  %load4  = load i64, ptr %gep_l4 , align 1
  %load5  = load i64, ptr %gep_l5 , align 1
  %load6  = load i64, ptr %gep_l6 , align 1
  %load7  = load i64, ptr %gep_l7 , align 1

  %div0 = udiv i64 %load0, %load4
  %div1 = udiv i64 %load1, %load5
  %div2 = udiv i64 %load2, %load6
  %div3 = udiv i64 %load3, %load7

  %gep_s0 = getelementptr inbounds i64, ptr %ps, i64 0
  %gep_s1 = getelementptr inbounds i64, ptr %ps, i64 1
  %gep_s2 = getelementptr inbounds i64, ptr %ps, i64 2
  %gep_s3 = getelementptr inbounds i64, ptr %ps, i64 3

  store i64 %div0, ptr %gep_s0, align 1
  store i64 %div1, ptr %gep_s1, align 1
 store i64 %div2, ptr %gep_s2, align 1
  store i64 %div3, ptr %gep_s3, align 1

  ret void
}
```

```
Scalars:
    %div0 = udiv i64 %load0, %load4
    %div1 = udiv i64 %load1, %load5
    %div2 = udiv i64 %load2, %load6
    %div3 = udiv i64 %load3, %load7
...
SLP:     VectorCost = 2
SLP:     ScalarCost = 4
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to