brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 1ac894f Raw
94 lines · plain
1; RUN: llc -mtriple=aarch64-- -verify-machineinstrs < %s | FileCheck %s --check-prefix=ASM2; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -stop-after=finalize-isel < %s | FileCheck %s --check-prefixes=MIR,ISEL3; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -stop-after=kcfi < %s | FileCheck %s --check-prefixes=MIR,KCFI4 5; ASM:       .word 123456786define void @f1(ptr noundef %x) #1 !kcfi_type !2 {7; ASM-LABEL: f1:8; ASM:       // %bb.0:9; ASM:         ldur w16, [x0, #-4]10; ASM-NEXT:    movk w17, #2491011; ASM-NEXT:    movk w17, #188, lsl #1612; ASM-NEXT:    cmp w16, w1713; ASM-NEXT:    b.eq .Ltmp014; ASM-NEXT:    brk #0x822015; ASM-NEXT:  .Ltmp0:16; ASM-NEXT:    blr x017 18; MIR-LABEL: name: f119; MIR: body:20 21; ISEL: BLR %0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, cfi-type 1234567822 23; KCFI:       BUNDLE{{.*}} {24; KCFI-NEXT:    KCFI_CHECK $x0, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv25; KCFI-NEXT:    BLR killed $x0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp26; KCFI-NEXT:  }27 28  call void %x() [ "kcfi"(i32 12345678) ]29  ret void30}31 32; ASM:       .word 1234567833define void @f2(ptr noundef %x)  #1 !kcfi_type !2 {34; ASM-LABEL: f2:35; ASM:       // %bb.0:36; ASM:         ldur w16, [x0, #-4]37; ASM-NEXT:    movk w17, #2491038; ASM-NEXT:    movk w17, #188, lsl #1639; ASM-NEXT:    cmp w16, w1740; ASM-NEXT:    b.eq .Ltmp141; ASM-NEXT:    brk #0x822042; ASM-NEXT:  .Ltmp1:43; ASM-NEXT:    blr x044 45; MIR-LABEL: name: f246; MIR: body:47 48; ISEL: BLR_BTI %0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, cfi-type 1234567849 50; KCFI:       BUNDLE{{.*}} {51; KCFI-NEXT:    KCFI_CHECK $x0, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv52; KCFI-NEXT:    BLR killed $x0, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit-def dead $lr, implicit $sp, implicit-def $sp53; KCFI-NEXT:    HINT 3654; KCFI-NEXT:  }55 56  call void %x() #0 [ "kcfi"(i32 12345678) ]57  ret void58}59 60; ASM-NOT: .word:61define void @f3(ptr noundef %x) #1 {62; ASM-LABEL: f3:63; ASM:       // %bb.0:64; ASM:         ldur w9, [x16, #-4]65; ASM-NEXT:    movk w17, #2491066; ASM-NEXT:    movk w17, #188, lsl #1667; ASM-NEXT:    cmp w9, w1768; ASM-NEXT:    b.eq .Ltmp269; ASM-NEXT:    brk #0x823070; ASM-NEXT:  .Ltmp2:71; ASM-NEXT:    br x1672 73; MIR-LABEL: name: f374; MIR: body:75 76; ISEL: TCRETURNrix16x17 %1, 0, csr_aarch64_aapcs, implicit $sp, cfi-type 1234567877 78; KCFI:       BUNDLE{{.*}} {79; KCFI-NEXT:    KCFI_CHECK $x16, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv80; KCFI-NEXT:    TCRETURNrix16x17 internal killed $x16, 0, csr_aarch64_aapcs, implicit $sp81; KCFI-NEXT:  }82 83  tail call void %x() [ "kcfi"(i32 12345678) ]84  ret void85}86 87attributes #0 = { returns_twice }88attributes #1 = { "branch-target-enforcement" }89 90!llvm.module.flags = !{!0, !1}91!0 = !{i32 8, !"branch-target-enforcement", i32 1}92!1 = !{i32 4, !"kcfi", i32 1}93!2 = !{i32 12345678}94