xref: /llvm-project/llvm/test/CodeGen/VE/Scalar/blockaddress.ll (revision b006b60dc993b2e0ba3e412c80709477241b6be6)
1; RUN: llc < %s -mtriple=ve | FileCheck %s
2
3@addr = global ptr null, align 8
4
5; Function Attrs: nofree norecurse nounwind writeonly
6define void @test() {
7; CHECK-LABEL: test:
8; CHECK:       # %bb.0: # %entry
9; CHECK-NEXT:  .Ltmp0: # Block address taken
10; CHECK-NEXT:  # %bb.1: # %test1
11; CHECK-NEXT:    lea %s0, addr@lo
12; CHECK-NEXT:    and %s0, %s0, (32)0
13; CHECK-NEXT:    lea.sl %s0, addr@hi(, %s0)
14; CHECK-NEXT:    lea %s1, .Ltmp0@lo
15; CHECK-NEXT:    and %s1, %s1, (32)0
16; CHECK-NEXT:    lea.sl %s1, .Ltmp0@hi(, %s1)
17; CHECK-NEXT:    st %s1, (, %s0)
18; CHECK-NEXT:    b.l.t (, %s10)
19entry:
20  br label %test1
21
22test1:
23  store ptr blockaddress(@test, %test1), ptr @addr, align 8
24  ret void
25}
26