[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / fast-isel-erase.ll
blob768bbcfef2beb42d23bc13ac99d47b24089eb661
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, ptr undef, align 4
13   %t81 = load i16, ptr 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()