Skip to content

[SDAG] Miscompilation at -O3 #155828

@dtcxzyw

Description

@dtcxzyw

Reproducer:

; bin/lli reduced.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define i32 @main() {
entry:
  br label %func_188.exit.i.i

func_188.exit.i.i:                                ; preds = %func_188.exit.i.i, %entry
  %or659.i167180.i.i = phi i32 [ 0, %entry ], [ 1, %func_188.exit.i.i ]
  %conv48.i.i = trunc i32 %or659.i167180.i.i to i8
  %and.i.i.i = and i32 %or659.i167180.i.i, 1
  %tobool80.not.i.i.i = icmp eq i32 %and.i.i.i, 0
  br i1 %tobool80.not.i.i.i, label %if.else.i.i.i, label %func_188.exit.i.i

if.else.i.i.i:                                    ; preds = %func_188.exit.i.i
  %cmp183.i.i.i = icmp sgt i8 %conv48.i.i, 0
  %ext = zext i1 %cmp183.i.i.i to i32 
  ret i32 %ext
}

The expected return value is 0. But I got 1.
llvm version: 1bb8db5

Metadata

Metadata

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions