Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AArch64/blockaddress.ll @ 77:54457678186b LLVM3.6
LLVM 3.6
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 08 Sep 2014 22:06:00 +0900 |
parents | 95c75e76d11b |
children | afa8332a0e37 |
comparison
equal
deleted
inserted
replaced
34:e874dbf0ad9d | 77:54457678186b |
---|---|
1 ; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs < %s | FileCheck %s | 1 ; RUN: llc -mtriple=aarch64-none-linux-gnu -aarch64-atomic-cfg-tidy=0 -verify-machineinstrs < %s | FileCheck %s |
2 ; RUN: llc -code-model=large -mtriple=aarch64-none-linux-gnu -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK-LARGE %s | 2 ; RUN: llc -code-model=large -mtriple=aarch64-none-linux-gnu -aarch64-atomic-cfg-tidy=0 -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK-LARGE %s |
3 | 3 |
4 @addr = global i8* null | 4 @addr = global i8* null |
5 | 5 |
6 define void @test_blockaddress() { | 6 define void @test_blockaddress() { |
7 ; CHECK-LABEL: test_blockaddress: | 7 ; CHECK-LABEL: test_blockaddress: |
8 store volatile i8* blockaddress(@test_blockaddress, %block), i8** @addr | 8 store volatile i8* blockaddress(@test_blockaddress, %block), i8** @addr |
9 %val = load volatile i8** @addr | 9 %val = load volatile i8** @addr |
10 indirectbr i8* %val, [label %block] | 10 indirectbr i8* %val, [label %block] |
11 ; CHECK: adrp [[DEST_HI:x[0-9]+]], [[DEST_LBL:.Ltmp[0-9]+]] | 11 ; CHECK: adrp [[DEST_HI:x[0-9]+]], [[DEST_LBL:.Ltmp[0-9]+]] |
12 ; CHECK: add [[DEST:x[0-9]+]], [[DEST_HI]], #:lo12:[[DEST_LBL]] | 12 ; CHECK: add [[DEST:x[0-9]+]], [[DEST_HI]], {{#?}}:lo12:[[DEST_LBL]] |
13 ; CHECK: str [[DEST]], | 13 ; CHECK: str [[DEST]], |
14 ; CHECK: ldr [[NEWDEST:x[0-9]+]] | 14 ; CHECK: ldr [[NEWDEST:x[0-9]+]] |
15 ; CHECK: br [[NEWDEST]] | 15 ; CHECK: br [[NEWDEST]] |
16 | 16 |
17 ; CHECK-LARGE: movz [[ADDR_REG:x[0-9]+]], #:abs_g3:[[DEST_LBL:.Ltmp[0-9]+]] | 17 ; CHECK-LARGE: movz [[ADDR_REG:x[0-9]+]], #:abs_g3:[[DEST_LBL:.Ltmp[0-9]+]] |