brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · e6c5c94 Raw
109 lines · plain
1; RUN: llc -verify-machineinstrs -enable-machine-outliner -aarch64-load-store-renaming=true -mtriple=aarch64-apple-darwin < %s | FileCheck %s2; RUN: llc -verify-machineinstrs -enable-machine-outliner -aarch64-load-store-renaming=true -mtriple=aarch64-apple-darwin -mcpu=cortex-a53 -enable-misched=false < %s | FileCheck %s3; RUN: llc -verify-machineinstrs -enable-machine-outliner -enable-linkonceodr-outlining -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=ODR4; RUN: llc -verify-machineinstrs -enable-machine-outliner -mtriple=aarch64-apple-darwin -stop-after=machine-outliner < %s | FileCheck %s -check-prefix=TARGET_FEATURES5 6; Make sure that we inherit target features from functions and make sure we have7; the right function attributes.8; TARGET_FEATURES: define internal void @OUTLINED_FUNCTION_{{[0-9]+}}()9; TARGET_FEATURES-SAME: #[[ATTR_NUM:[0-9]+]]10; TARGET_FEATURES-DAG: attributes #[[ATTR_NUM]] = {11; TARGET_FEATURES-SAME: minsize12; TARGET_FEATURES-SAME: nounwind13; TARGET_FEATURES-SAME: optsize14; TARGET_FEATURES-SAME: "target-cpu"="cyclone"15; TARGET_FEATURES-SAME: "target-features"="+sse"16 17define linkonce_odr void @fish() #0 {18  ; CHECK-LABEL: _fish:19  ; CHECK-NOT: OUTLINED20  ; ODR: [[OUTLINED:OUTLINED_FUNCTION_[0-9]+]]21  %1 = alloca i32, align 422  %2 = alloca i32, align 423  %3 = alloca i32, align 424  %4 = alloca i32, align 425  %5 = alloca i32, align 426  %6 = alloca i32, align 427  store i32 1, ptr %1, align 428  store i32 2, ptr %2, align 429  store i32 3, ptr %3, align 430  store i32 4, ptr %4, align 431  store i32 5, ptr %5, align 432  store i32 6, ptr %6, align 433  ret void34}35 36define void @turtle() section "TURTLE,turtle" {37  ; CHECK-LABEL: _turtle:38  ; ODR-LABEL: _turtle:39  ; CHECK-NOT: OUTLINED40  %1 = alloca i32, align 441  %2 = alloca i32, align 442  %3 = alloca i32, align 443  %4 = alloca i32, align 444  %5 = alloca i32, align 445  %6 = alloca i32, align 446  store i32 1, ptr %1, align 447  store i32 2, ptr %2, align 448  store i32 3, ptr %3, align 449  store i32 4, ptr %4, align 450  store i32 5, ptr %5, align 451  store i32 6, ptr %6, align 452  ret void53}54 55define void @cat() #0 {56  ; CHECK-LABEL: _cat:57  ; CHECK: [[OUTLINED:OUTLINED_FUNCTION_[0-9]+]]58  ; ODR: [[OUTLINED]]59  %1 = alloca i32, align 460  %2 = alloca i32, align 461  %3 = alloca i32, align 462  %4 = alloca i32, align 463  %5 = alloca i32, align 464  %6 = alloca i32, align 465  store i32 1, ptr %1, align 466  store i32 2, ptr %2, align 467  store i32 3, ptr %3, align 468  store i32 4, ptr %4, align 469  store i32 5, ptr %5, align 470  store i32 6, ptr %6, align 471  ret void72}73 74define void @dog() #0 {75  ; CHECK-LABEL: _dog:76  ; CHECK: [[OUTLINED]]77  ; ODR: [[OUTLINED]]78  %1 = alloca i32, align 479  %2 = alloca i32, align 480  %3 = alloca i32, align 481  %4 = alloca i32, align 482  %5 = alloca i32, align 483  %6 = alloca i32, align 484  store i32 1, ptr %1, align 485  store i32 2, ptr %2, align 486  store i32 3, ptr %3, align 487  store i32 4, ptr %4, align 488  store i32 5, ptr %5, align 489  store i32 6, ptr %6, align 490  ret void91}92 93; ODR: [[OUTLINED]]:94; CHECK: .p2align 295; CHECK-NEXT: [[OUTLINED]]:96; CHECK:      mov     w9, #197; CHECK-DAG: mov     w8, #298; CHECK-DAG: stp     w8, w9, [sp, #24]99; CHECK-DAG: mov     w9, #3100; CHECK-DAG: mov     w8, #4101; CHECK-DAG: stp     w8, w9, [sp, #16]102; CHECK-DAG: mov     w9, #5103; CHECK-DAG: mov     w8, #6104; CHECK-DAG: stp     w8, w9, [sp, #8]105; CHECK-DAG: add     sp, sp, #32106; CHECK-DAG: ret107 108attributes #0 = { nounwind noredzone "target-cpu"="cyclone" "target-features"="+sse" }109