regression: +54 insts: ctlz_i64 (rv64xtheadbb.ll)
| Run: | explore-04ca53e65f-20261014-114124 |
| Kind: | regression |
| Category: | +54 insts: ctlz_i64 (rv64xtheadbb.ll) |
| Occurrences: | 1 in 1 configs, 1 test files |
| Snippet from: | rv64xtheadbb.ll @ctlz_i64 via llvm-extract |
| Config: | -mtriple=riscv64 -mattr=+xtheadbb -verify-machineinstrs |
| Local check: | reproduces at 04ca53e65f |
| Compiler Explorer: | not uploaded (over --godbolt-limit or disabled) |
Snippet:
; Function Attrs: nounwind
define i64 @ctlz_i64(i64 %a) #0 {
%1 = call i64 @llvm.ctlz.i64(i64 %a, i1 false)
ret i64 %1
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.ctlz.i64(i64, i1 immarg) #1
attributes #0 = { nounwind }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
Reproduce:
llc -mtriple=riscv64 -mattr=+xtheadbb -verify-machineinstrs -global-isel snippet.ll -o -
llc -mtriple=riscv64 -mattr=+xtheadbb -verify-machineinstrs -global-isel=0 snippet.ll -o -
Assembly diff (SelectionDAG vs GlobalISel):
--- sdag
+++ gisel
@@ -1,2 +1,56 @@
-th.ff1 a0, a0
+lui a1, 21845
+srli a2, a0, 1
+or a0, a0, a2
+srli a2, a0, 2
+or a0, a0, a2
+lui a2, 13107
+srli a3, a0, 4
+addi a1, a1, 1365
+or a0, a0, a3
+addi a2, a2, 819
+srli a3, a0, 8
+slli a1, a1, 12
+or a0, a0, a3
+addi a1, a1, 1365
+srli a3, a0, 16
+slli a1, a1, 12
+or a0, a0, a3
+addi a1, a1, 1365
+srli a3, a0, 32
+slli a1, a1, 12
+or a0, a0, a3
+addi a1, a1, 1365
+srli a3, a0, 1
+slli a2, a2, 12
+and a1, a3, a1
+lui a3, 3855
+addi a2, a2, 819
+addi a3, a3, 241
+slli a2, a2, 12
+addi a2, a2, 819
+sub a0, a0, a1
+slli a2, a2, 12
+srli a1, a0, 2
+addi a2, a2, 819
+slli a3, a3, 12
+and a1, a1, a2
+addi a3, a3, -241
+and a0, a0, a2
+slli a3, a3, 12
+add a0, a1, a0
+addi a1, a3, 241
+srli a2, a0, 4
+slli a1, a1, 12
+add a0, a2, a0
+addi a1, a1, -241
+and a0, a0, a1
+slli a1, a0, 8
+add a0, a0, a1
+slli a1, a0, 16
+add a0, a0, a1
+slli a1, a0, 32
+add a0, a0, a1
+srli a0, a0, 56
+li a1, 64
+sub a0, a1, a0
ret
Occurrences (1):
| Input | Function | Config |
|---|
| rv64xtheadbb.ll | ctlz_i64 | -mtriple=riscv64 -mattr=+xtheadbb -verify-machineinstrs |
Generated 2026-10-15 08:05 UTC.