Skip to content

[InstCombine] SignBitCheck(SignPreservingOp(X)) -> SignBitCheck(X) #141930

@dtcxzyw

Description

@dtcxzyw

Alive2: https://alive2.llvm.org/ce/z/c2vTkD

define i1 @src(i16 %x) {
  %spec.select7.i.i.i.i.i = call i16 @llvm.smax(i16 %x, i16 -128)
  %.08.i.i.i.i.i = call i16 @llvm.smin(i16 %spec.select7.i.i.i.i.i, i16 127)
  %trunc = trunc nsw i16 %.08.i.i.i.i.i to i8
  %cmp = icmp slt i8 %trunc, 0
  ret i1 %cmp
}

define i1 @tgt(i16 %x) {
  %cmp = icmp slt i16 %x, 0
  ret i1 %cmp
}

This pattern exists in Lean4libstdcxx.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions