llvm.org GIT mirror llvm / release_28 test / CodeGen / X86 / codegen-prepare-extload.ll
release_28

Tree @release_28 (Download .tar.gz)

codegen-prepare-extload.ll @release_28raw · history · blame

; RUN: llc < %s -march=x86-64 | FileCheck %s
; rdar://7304838

; CodeGenPrepare should move the zext into the block with the load
; so that SelectionDAG can select it with the load.

; CHECK: movzbl (%rdi), %eax

define void @foo(i8* %p, i32* %q) {
entry:
  %t = load i8* %p
  %a = icmp slt i8 %t, 20
  br i1 %a, label %true, label %false
true:
  %s = zext i8 %t to i32
  store i32 %s, i32* %q
  ret void
false:
  ret void
}