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

Tree @release_35 (Download .tar.gz)

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

; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
; RUN: llc < %s -mtriple=x86_64-win64 | 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: movsbl ({{%rdi|%rcx}}), %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
}