-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
bugIncorrect behavior in the current implementation that needs fixingIncorrect behavior in the current implementation that needs fixingcraneliftIssues related to the Cranelift code generatorIssues related to the Cranelift code generator
Description
.clif Test Case
not reduced at all - sorry
function u0:0(i64, i64, i64, i64) tail {
ss0 = explicit_slot 8, align = 8
sig0 = (i64, i64, i64, i64) tail
sig1 = (i64, i64, i64) -> i8 system_v
sig2 = (i64, i32, i64) system_v
sig3 = (i64, i32, i64) -> i8 system_v
sig4 = (i64, i32, i64) -> i8 system_v
sig5 = (i64, i32, i64) -> i8 system_v
sig6 = (i64, i32, i64) -> i8 system_v
sig7 = (i64, i32, i8) -> i8 system_v
sig8 = (i64, i32, i16) -> i8 system_v
sig9 = (i64, i32, i32) -> i8 system_v
sig10 = (i64, i32, i64) -> i8 system_v
sig11 = (i64, i32, i32, i64) -> i8 system_v
sig12 = (i64, i32, i32, f64) -> i8 system_v
sig13 = (i64, i32) system_v
sig14 = (i64) system_v
sig15 = (i64, i16) system_v
fn0 = u1:0 sig15
fn1 = u0:2 sig1
fn2 = u0:3 sig2
fn3 = u0:4 sig3
fn4 = u0:5 sig4
fn5 = u0:6 sig5
fn6 = u0:7 sig6
fn7 = u0:8 sig7
fn8 = u0:9 sig8
fn9 = u0:10 sig9
fn10 = u0:11 sig10
fn11 = u0:12 sig11
fn12 = u0:13 sig12
fn13 = u0:14 sig13
fn14 = u0:15 sig14
fn15 = u0:16 sig14
fn16 = u0:17 sig14
fn17 = u0:18 sig14
fn18 = u0:19 sig14
fn19 = u0:20 sig14
fn20 = u0:21 sig14
fn21 = u0:22 sig14
fn22 = u0:23 sig14
block0(v0: i64, v1: i64, v2: i64, v3: i64):
@0000 v4 = load.i32 notrap aligned v2+680
@0000 v5 = iconst.i32 13
@0000 v6 = ushr v4, v5 ; v5 = 13
@0000 v7 = band_imm v6, 1
@0000 v8 = ireduce.i8 v7
@0000 brif v8, block2, block1
block1 cold:
@0000 v9 = iconst.i16 2048
@0000 call fn0(v2, v9) ; v9 = 2048
@0000 return
block2:
@0000 v10 = load.f64x2 notrap aligned v2+632
@0000 v11 = load.f64x2 notrap aligned v2+312
@0000 v12 = fadd v10, v11
@0000 v13 = extractlane v12, 0
@0000 v14 = f64const 0.0
@0000 v15 = fcmp lt v13, v14 ; v14 = 0.0
@0000 v16 = fcmp gt v13, v14 ; v14 = 0.0
@0000 v17 = fcmp eq v13, v14 ; v14 = 0.0
@0000 v18 = fcmp uno v13, v14 ; v14 = 0.0
@0000 v19 = load.i32 notrap aligned v2+652
@0000 v20 = uextend.i32 v15
@0000 v21 = uextend.i32 v16
@0000 v22 = uextend.i32 v17
@0000 v23 = uextend.i32 v18
@0000 v24 = ishl_imm v20, 15
@0000 v25 = ishl_imm v21, 14
@0000 v26 = ishl_imm v22, 13
@0000 v27 = ishl_imm v23, 12
@0000 v28 = bor v24, v25
@0000 v29 = bor v28, v26
@0000 v30 = bor v29, v27
@0000 v31 = iconst.i32 0x0001_f000
@0000 v32 = band_not v19, v31 ; v31 = 0x0001_f000
@0000 v33 = bor v32, v30
@0000 v34 = load.i32 notrap aligned v2
@0000 v35 = iadd_imm v34, 4
@0001 v36 = f64const 0.0
@0001 v37 = splat.f64x2 v36 ; v36 = 0.0
@0001 v38 = load.f64x2 notrap aligned v2+280
@0001 v39 = load.f64x2 notrap aligned v2+232
@0001 v40 = load.f64x2 notrap aligned v2+216
@0001 v41 = bitcast.i64x2 v39
@0001 v42 = bitcast.i64x2 v40
@0001 v43 = fcmp ge v38, v37
@0001 v44 = select v43, v42, v41
@0001 v45 = bitcast.f64x2 v44
@0001 v46 = iadd_imm v35, 4
@0002 v47 = fadd v38, v45
@0002 v48 = extractlane v47, 0
@0002 v49 = f64const 0.0
@0002 v50 = fcmp lt v48, v49 ; v49 = 0.0
@0002 v51 = fcmp gt v48, v49 ; v49 = 0.0
@0002 v52 = fcmp eq v48, v49 ; v49 = 0.0
@0002 v53 = fcmp uno v48, v49 ; v49 = 0.0
@0002 v54 = uextend.i32 v50
@0002 v55 = uextend.i32 v51
@0002 v56 = uextend.i32 v52
@0002 v57 = uextend.i32 v53
@0002 v58 = ishl_imm v54, 15
@0002 v59 = ishl_imm v55, 14
@0002 v60 = ishl_imm v56, 13
@0002 v61 = ishl_imm v57, 12
@0002 v62 = bor v58, v59
@0002 v63 = bor v62, v60
@0002 v64 = bor v63, v61
@0002 v65 = iconst.i32 0x0001_f000
@0002 v66 = band_not v33, v65 ; v65 = 0x0001_f000
@0002 v67 = bor v66, v64
@0002 v68 = iadd_imm v46, 4
@0003 v69 = f64const 0.0
@0003 v70 = splat.f64x2 v69 ; v69 = 0.0
@0003 v71 = load.f64x2 notrap aligned v2+264
@0003 v72 = bitcast.i64x2 v39
@0003 v73 = bitcast.i64x2 v40
@0003 v74 = fcmp ge v71, v70
@0003 v75 = select v74, v73, v72
@0003 v76 = bitcast.f64x2 v75
@0003 v77 = iadd_imm v68, 4
store notrap aligned v77, v2
store notrap aligned v67, v2+652
store notrap aligned v76, v2+632
store notrap aligned v47, v2+280
store notrap aligned v12, v2+312
v78 = load.i32 notrap aligned v0
v79 = iadd_imm v78, 4
store notrap aligned v79, v0
v80 = load.i32 notrap aligned v0+4
v81 = iadd_imm v80, 8
store notrap aligned v81, v0+4
return
}
Steps to Reproduce
seems to only happen when running on release..?
Expected Results
should not panic
Actual Results
panics
Versions and Environment
Cranelift version or commit: 0.129
Operating system: Linux 6.19.2-2-cachyos
Architecture: x86_64 (Ryzen 5 5600)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugIncorrect behavior in the current implementation that needs fixingIncorrect behavior in the current implementation that needs fixingcraneliftIssues related to the Cranelift code generatorIssues related to the Cranelift code generator