Skip to content

Missed optimization of switch to arithmetic #67843

@ojeda

Description

@ojeda

From: rust-lang/rust#116272

target datalayout = "n8:16:32:64" define i32 @src(i8 %0) { start: switch i8 %0, label %bb2 [ i8 0, label %bb5 i8 1, label %bb4 i8 -1, label %bb1 ] bb2: ; preds = %start unreachable bb4: ; preds = %start br label %bb5 bb1: ; preds = %start br label %bb5 bb5: ; preds = %start, %bb1, %bb4 %.0 = phi i32 [ 255, %bb1 ], [ 1, %bb4 ], [ 0, %start ] ret i32 %.0 } define i32 @tgt(i8) { %_2 = zext i8 %0 to i32 ret i32 %_2 }

https://alive2.llvm.org/ce/z/NvmXJk

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions