regression: +68 insts: test_ctlz_i64_zero_poison (ctlz-cttz-ctpop.ll)

Run:explore-bc8218b282-20261015-075519
Kind:regression
Category:+68 insts: test_ctlz_i64_zero_poison (ctlz-cttz-ctpop.ll)
Occurrences:1 in 1 configs, 1 test files
Snippet from:ctlz-cttz-ctpop.3713038af0.ll (mutant of ctlz-cttz-ctpop.ll) @test_ctlz_i64_zero_poison via llvm-extract
Config:-mtriple=riscv32 -verify-machineinstrs
Local check:reproduces at bc8218b282
Compiler Explorer:not uploaded (over --godbolt-limit or disabled)

Snippet:

; Function Attrs: nounwind
define i64 @test_ctlz_i64_zero_poison(i64 %a) #0 {
  %tmp = call i64 @llvm.ctlz.i64(i64 %a, i1 true)
  %B = urem i64 %tmp, %tmp
  ret i64 %B
}

; 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=riscv32 -verify-machineinstrs -global-isel snippet.ll -o -
llc -mtriple=riscv32 -verify-machineinstrs -global-isel=0 snippet.ll -o -

Assembly diff (SelectionDAG vs GlobalISel):

--- sdag
+++ gisel
@@ -1,3 +1,73 @@
-li a0, 0
+lui a5, 349525
+addi a5, a5, 1365
+lui a4, 209715
+addi a4, a4, 819
+lui a3, 61681
+addi a3, a3, -241
+li a2, 32
+beqz a1, .L0
+srli a0, a1, 1
+or a0, a1, a0
+srli a1, a0, 2
+or a0, a0, a1
+srli a1, a0, 4
+or a0, a0, a1
+srli a1, a0, 8
+or a0, a0, a1
+srli a1, a0, 16
+or a0, a0, a1
+srli a1, a0, 1
+and a1, a1, a5
+sub a0, a0, a1
+srli a1, a0, 2
+and a1, a1, a4
+and a0, a0, a4
+add a0, a1, a0
+srli a1, a0, 4
+add a0, a1, a0
+and a0, a0, a3
+slli a1, a0, 8
+add a0, a0, a1
+slli a1, a0, 16
+add a0, a0, a1
+srli a0, a0, 24
+sub a0, a2, a0
+j .L1
+.L0:
+srli a1, a0, 1
+or a0, a0, a1
+srli a1, a0, 2
+or a0, a0, a1
+srli a1, a0, 4
+or a0, a0, a1
+srli a1, a0, 8
+or a0, a0, a1
+srli a1, a0, 16
+or a0, a0, a1
+srli a1, a0, 1
+and a1, a1, a5
+sub a0, a0, a1
+srli a1, a0, 2
+and a1, a1, a4
+and a0, a0, a4
+add a0, a1, a0
+srli a1, a0, 4
+add a0, a1, a0
+and a0, a0, a3
+slli a1, a0, 8
+add a0, a0, a1
+slli a1, a0, 16
+add a0, a0, a1
+srli a0, a0, 24
+sub a2, a2, a0
+addi a0, a2, 32
+.L1:
+addi sp, sp, -16
+sw ra, 12(sp)
 li a1, 0
+mv a2, a0
+li a3, 0
+call __umoddi3
+lw ra, 12(sp)
+addi sp, sp, 16
 ret

Occurrences (1):

InputFunctionConfig
ctlz-cttz-ctpop.3713038af0.ll (mutant of ctlz-cttz-ctpop.ll)test_ctlz_i64_zero_poison-mtriple=riscv32 -verify-machineinstrs

Generated 2026-10-15 08:05 UTC.