xref: /llvm-project/llvm/test/CodeGen/AArch64/pr51476.ll (revision 5ddce70ef0e5a641d7fea95e31fc5e2439cb98cb)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s
3
4define void @test(i8 %arg) nounwind {
5; CHECK-LABEL: test:
6; CHECK:       // %bb.0:
7; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill
8; CHECK-NEXT:    and w9, w0, #0xff
9; CHECK-NEXT:    mov w8, #1
10; CHECK-NEXT:    cmp w9, #1
11; CHECK-NEXT:    cset w0, ne
12; CHECK-NEXT:    strb w0, [sp, #12]
13; CHECK-NEXT:    cbz w8, .LBB0_2
14; CHECK-NEXT:  // %bb.1: // %do_call
15; CHECK-NEXT:    bl unknown
16; CHECK-NEXT:  .LBB0_2: // %common.ret
17; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
18; CHECK-NEXT:    ret
19  %tmp = alloca i8
20  %cmp1 = icmp ne i8 %arg, 1
21  %zext = zext i1 %cmp1 to i8
22  store i8 %zext, ptr %tmp
23  %zext2 = load i8, ptr %tmp
24  %cmp2 = icmp eq i8 %zext2, 3
25  br i1 %cmp2, label %exit, label %do_call
26
27do_call:
28  call void @unknown(i8 %zext2)
29  ret void
30
31exit:
32  ret void
33}
34
35declare void @unknown(i8)
36