[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / fast-isel-erase.ll
blobe8265bce9fec3b2d6769302d53b0be4c872b7b68
1 ; RUN: llc -mtriple=arm64-apple-ios -o - %s -fast-isel=1 -O0 | FileCheck %s
3 ; The zext can be folded into the load and removed, but doing so can invalidate
4 ; pointers internal to FastISel and cause a crash so it must be done carefully.
5 define i32 @test() {
6 ; CHECK-LABEL: test:
7 ; CHECK: ldrh
8 ; CHECK: bl _callee
9 ; CHECK-NOT: uxth
11 entry:
12   store i32 undef, i32* undef, align 4
13   %t81 = load i16, i16* undef, align 2
14   call void @callee()
15   %t82 = zext i16 %t81 to i32
16   %t83 = shl i32 %t82, 16
17   %t84 = or i32 undef, %t83
18   br label %end
20 end:
21   %val = phi i32 [%t84, %entry]
22   ret i32 %val
25 declare void @callee()