brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 5b64d25 Raw
79 lines · plain
1; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -mattr=+sme2 -enable-machine-outliner -aarch64-streaming-hazard-size=0 -verify-machineinstrs < %s | FileCheck %s2; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -mattr=+sme2 -enable-machine-outliner -aarch64-streaming-hazard-size=0 -verify-machineinstrs < %s | FileCheck %s -check-prefix=OUTLINER3 4declare void @callee();5 6define void @streaming_mode_change1() #0 {7; CHECK-LABEL: streaming_mode_change1:8; CHECK:       // %bb.0:9; CHECK-NEXT:    stp d15, d14, [sp, #-80]! // 16-byte Folded Spill10; CHECK-NEXT:    stp d13, d12, [sp, #16] // 16-byte Folded Spill11; CHECK-NEXT:    stp d11, d10, [sp, #32] // 16-byte Folded Spill12; CHECK-NEXT:    stp d9, d8, [sp, #48] // 16-byte Folded Spill13; CHECK-NEXT:    str x30, [sp, #64] // 8-byte Spill14; CHECK-NEXT:    smstop sm15; CHECK-NEXT:    bl callee16; CHECK-NEXT:    smstart sm17; CHECK-NEXT:    ldp d9, d8, [sp, #48] // 16-byte Folded Reload18; CHECK-NEXT:    ldr x30, [sp, #64] // 8-byte Reload19; CHECK-NEXT:    ldp d11, d10, [sp, #32] // 16-byte Folded Reload20; CHECK-NEXT:    ldp d13, d12, [sp, #16] // 16-byte Folded Reload21; CHECK-NEXT:    ldp d15, d14, [sp], #80 // 16-byte Folded Reload22; CHECK-NEXT:    ret23;24; OUTLINER-LABEL: streaming_mode_change1:25; OUTLINER-NOT: OUTLINED_FUNCTION_26  call void @callee();27  ret void;28}29 30define void @streaming_mode_change2() #0 {31; CHECK-LABEL: streaming_mode_change2:32; CHECK:       // %bb.0:33; CHECK-NEXT:    stp d15, d14, [sp, #-80]! // 16-byte Folded Spill34; CHECK-NEXT:    stp d13, d12, [sp, #16] // 16-byte Folded Spill35; CHECK-NEXT:    stp d11, d10, [sp, #32] // 16-byte Folded Spill36; CHECK-NEXT:    stp d9, d8, [sp, #48] // 16-byte Folded Spill37; CHECK-NEXT:    str x30, [sp, #64] // 8-byte Spill38; CHECK-NEXT:    smstop sm39; CHECK-NEXT:    bl callee40; CHECK-NEXT:    smstart sm41; CHECK-NEXT:    ldp d9, d8, [sp, #48] // 16-byte Folded Reload42; CHECK-NEXT:    ldr x30, [sp, #64] // 8-byte Reload43; CHECK-NEXT:    ldp d11, d10, [sp, #32] // 16-byte Folded Reload44; CHECK-NEXT:    ldp d13, d12, [sp, #16] // 16-byte Folded Reload45; CHECK-NEXT:    ldp d15, d14, [sp], #80 // 16-byte Folded Reload46; CHECK-NEXT:    ret47;48; OUTLINER-LABEL: streaming_mode_change2:49; OUTLINER-NOT: OUTLINED_FUNCTION_50  call void @callee();51  ret void;52}53 54define void @streaming_mode_change3() #0 {55; CHECK-LABEL: streaming_mode_change3:56; CHECK:       // %bb.0:57; CHECK-NEXT:    stp d15, d14, [sp, #-80]! // 16-byte Folded Spill58; CHECK-NEXT:    stp d13, d12, [sp, #16] // 16-byte Folded Spill59; CHECK-NEXT:    stp d11, d10, [sp, #32] // 16-byte Folded Spill60; CHECK-NEXT:    stp d9, d8, [sp, #48] // 16-byte Folded Spill61; CHECK-NEXT:    str x30, [sp, #64] // 8-byte Spill62; CHECK-NEXT:    smstop sm63; CHECK-NEXT:    bl callee64; CHECK-NEXT:    smstart sm65; CHECK-NEXT:    ldp d9, d8, [sp, #48] // 16-byte Folded Reload66; CHECK-NEXT:    ldr x30, [sp, #64] // 8-byte Reload67; CHECK-NEXT:    ldp d11, d10, [sp, #32] // 16-byte Folded Reload68; CHECK-NEXT:    ldp d13, d12, [sp, #16] // 16-byte Folded Reload69; CHECK-NEXT:    ldp d15, d14, [sp], #80 // 16-byte Folded Reload70; CHECK-NEXT:    ret71;72; OUTLINER-LABEL: streaming_mode_change3:73; OUTLINER-NOT: OUTLINED_FUNCTION_74  call void @callee();75  ret void;76}77 78attributes #0 = { "aarch64_pstate_sm_enabled" nounwind }79