1# RUN: llc -mtriple=aarch64-linux-gnu -start-after=branch-relaxation --filetype=obj -o %t.o %s 2 3--- | 4 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" 5 target triple = "aarch64-unknown-linux-gnu" 6 7 @reps = external dso_local global i32, align 4 8 9 define void @foo() { 10 ret void 11 } 12 13 !2 = !{!3, !3, i64 0} 14 !3 = !{!"int", !4, i64 0} 15 !4 = !{!"omnipotent char", !5, i64 0} 16 !5 = !{!"Simple C++ TBAA"} 17... 18--- 19name: foo 20alignment: 64 21jumpTable: 22 kind: block-address 23 entries: 24 - id: 0 25 blocks: [ '%bb.2', '%bb.3', '%bb.4', '%bb.5' ] 26body: | 27 bb.0: 28 successors: %bb.6(0x19999998), %bb.1(0x66666668) 29 liveins: $w0, $x1, $x2, $x3, $x4 30 31 dead $wzr = SUBSWri renamable $w0, 3, 0, implicit-def $nzcv 32 Bcc 8, %bb.6, implicit $nzcv 33 34 bb.1: 35 successors: %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000), %bb.5(0x20000000) 36 liveins: $w0, $x1, $x2, $x3, $x4 37 38 $x8 = ADRP target-flags(aarch64-page) %jump-table.0 39 renamable $w9 = ORRWrs $wzr, killed renamable $w0, 0, implicit-def $x9 40 renamable $x8 = ADDXri killed $x8, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0, 0 41 early-clobber renamable $x10, dead early-clobber renamable $x11 = JumpTableDest32 killed renamable $x8, killed renamable $x9, %jump-table.0 42 BR killed renamable $x10 43 44 bb.2 (align 65536): 45 successors: %bb.3(0x50000000), %bb.6(0x30000000) 46 liveins: $x1, $x2, $x3, $x4 47 48 renamable $x8 = ADRP target-flags(aarch64-page) @reps 49 renamable $w9 = LDRWui renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @reps :: (volatile dereferenceable load 4 from @reps, !tbaa !2) 50 dead $wzr = SUBSWri killed renamable $w9, 1, 0, implicit-def $nzcv 51 Bcc 11, %bb.6, implicit $nzcv 52 53 bb.3 (align 65536): 54 successors: %bb.4(0x50000000), %bb.6(0x30000000) 55 liveins: $x1, $x2, $x3, $x4 56 57 renamable $x8 = ADRP target-flags(aarch64-page) @reps 58 renamable $w9 = LDRWui renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @reps :: (volatile dereferenceable load 4 from @reps, !tbaa !2) 59 dead $wzr = SUBSWri killed renamable $w9, 1, 0, implicit-def $nzcv 60 Bcc 11, %bb.6, implicit $nzcv 61 62 bb.4 (align 65536): 63 successors: %bb.5(0x50000000), %bb.6(0x30000000) 64 liveins: $x1, $x2, $x3, $x4 65 66 renamable $x8 = ADRP target-flags(aarch64-page) @reps 67 renamable $w9 = LDRWui renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @reps :: (volatile dereferenceable load 4 from @reps, !tbaa !2) 68 dead $wzr = SUBSWri killed renamable $w9, 1, 0, implicit-def $nzcv 69 Bcc 11, %bb.6, implicit $nzcv 70 71 bb.5 (align 65536): 72 successors: %bb.6(0x30000000) 73 liveins: $x1, $x2, $x3, $x4 74 75 renamable $x8 = ADRP target-flags(aarch64-page) @reps 76 renamable $w9 = LDRWui renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @reps :: (volatile dereferenceable load 4 from @reps, !tbaa !2) 77 dead $wzr = SUBSWri killed renamable $w9, 1, 0, implicit-def $nzcv 78 Bcc 11, %bb.6, implicit $nzcv 79 80 bb.6: 81 RET undef $lr 82 83... 84