llvm / llvm/llvm-project

missed instcombine

Open
#210,537 3 comments 0 reactions 1 assignee Claimed by @Ineshmcw View on GitHub
llvm:instcombine missed-optimization
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

```llvm
define i64 @switch_phi_to_zext(i16 %x) {
entry:
switch i16 %x, label %default [
i16 0, label %merge
i16 -1, label %max
]

default:
%ext = zext i16 %x to i64
br label %merge

max:
br label %merge

merge:
%result = phi i64 [ 0, %entry ], [ 65535, %max ], [ %ext, %default ]
ret i64 %result
}
```

can be combined to

```llvm
define i64 @switch_phi_to_zext(i16 %x) {
entry:
%z = zext i16 %x to i64
ret i64 %z
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.