This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / codegen-prepare-extload.ll
blob14df815663e3d953b7ba62e50543b156841d88e0
1 ; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
2 ; RUN: llc < %s -mtriple=x86_64-win64 | FileCheck %s
3 ; rdar://7304838
5 ; CodeGenPrepare should move the zext into the block with the load
6 ; so that SelectionDAG can select it with the load.
8 ; CHECK: movzbl ({{%rdi|%rcx}}), %eax
10 define void @foo(i8* %p, i32* %q) {
11 entry:
12   %t = load i8* %p
13   %a = icmp slt i8 %t, 20
14   br i1 %a, label %true, label %false
15 true:
16   %s = zext i8 %t to i32
17   store i32 %s, i32* %q
18   ret void
19 false:
20   ret void