100 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=arm64-apple-ios < %s | FileCheck %s3; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck -check-prefix CHECK-NOTMACHO %s4;5; rdar://140750066 7define void @odd() nounwind {8; CHECK-LABEL: odd:9; CHECK: ; %bb.0:10; CHECK-NEXT: stp d15, d14, [sp, #-144]! ; 16-byte Folded Spill11; CHECK-NEXT: stp d13, d12, [sp, #16] ; 16-byte Folded Spill12; CHECK-NEXT: stp d11, d10, [sp, #32] ; 16-byte Folded Spill13; CHECK-NEXT: stp d9, d8, [sp, #48] ; 16-byte Folded Spill14; CHECK-NEXT: stp x28, x27, [sp, #64] ; 16-byte Folded Spill15; CHECK-NEXT: stp x26, x25, [sp, #80] ; 16-byte Folded Spill16; CHECK-NEXT: stp x24, x23, [sp, #96] ; 16-byte Folded Spill17; CHECK-NEXT: stp x22, x21, [sp, #112] ; 16-byte Folded Spill18; CHECK-NEXT: stp x20, x19, [sp, #128] ; 16-byte Folded Spill19; CHECK-NEXT: ; InlineAsm Start20; CHECK-NEXT: mov x0, #42 ; =0x2a21; CHECK-NEXT: ; InlineAsm End22; CHECK-NEXT: ldp x20, x19, [sp, #128] ; 16-byte Folded Reload23; CHECK-NEXT: ldp x22, x21, [sp, #112] ; 16-byte Folded Reload24; CHECK-NEXT: ldp x24, x23, [sp, #96] ; 16-byte Folded Reload25; CHECK-NEXT: ldp x26, x25, [sp, #80] ; 16-byte Folded Reload26; CHECK-NEXT: ldp x28, x27, [sp, #64] ; 16-byte Folded Reload27; CHECK-NEXT: ldp d9, d8, [sp, #48] ; 16-byte Folded Reload28; CHECK-NEXT: ldp d11, d10, [sp, #32] ; 16-byte Folded Reload29; CHECK-NEXT: ldp d13, d12, [sp, #16] ; 16-byte Folded Reload30; CHECK-NEXT: ldp d15, d14, [sp], #144 ; 16-byte Folded Reload31; CHECK-NEXT: ret32;33; CHECK-NOTMACHO-LABEL: odd:34; CHECK-NOTMACHO: // %bb.0:35; CHECK-NOTMACHO-NEXT: stp d14, d12, [sp, #-80]! // 16-byte Folded Spill36; CHECK-NOTMACHO-NEXT: stp d10, d8, [sp, #16] // 16-byte Folded Spill37; CHECK-NOTMACHO-NEXT: str x27, [sp, #32] // 8-byte Spill38; CHECK-NOTMACHO-NEXT: stp x25, x23, [sp, #48] // 16-byte Folded Spill39; CHECK-NOTMACHO-NEXT: stp x21, x19, [sp, #64] // 16-byte Folded Spill40; CHECK-NOTMACHO-NEXT: //APP41; CHECK-NOTMACHO-NEXT: mov x0, #42 // =0x2a42; CHECK-NOTMACHO-NEXT: //NO_APP43; CHECK-NOTMACHO-NEXT: ldp x21, x19, [sp, #64] // 16-byte Folded Reload44; CHECK-NOTMACHO-NEXT: ldr x27, [sp, #32] // 8-byte Reload45; CHECK-NOTMACHO-NEXT: ldp x25, x23, [sp, #48] // 16-byte Folded Reload46; CHECK-NOTMACHO-NEXT: ldp d10, d8, [sp, #16] // 16-byte Folded Reload47; CHECK-NOTMACHO-NEXT: ldp d14, d12, [sp], #80 // 16-byte Folded Reload48; CHECK-NOTMACHO-NEXT: ret49 50 call void asm sideeffect "mov x0, #42", "~{x0},~{x19},~{x21},~{x23},~{x25},~{x27},~{d8},~{d10},~{d12},~{d14}"() nounwind51 ret void52}53 54define void @even() nounwind {55; CHECK-LABEL: even:56; CHECK: ; %bb.0:57; CHECK-NEXT: stp d15, d14, [sp, #-144]! ; 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: stp x28, x27, [sp, #64] ; 16-byte Folded Spill62; CHECK-NEXT: stp x26, x25, [sp, #80] ; 16-byte Folded Spill63; CHECK-NEXT: stp x24, x23, [sp, #96] ; 16-byte Folded Spill64; CHECK-NEXT: stp x22, x21, [sp, #112] ; 16-byte Folded Spill65; CHECK-NEXT: stp x20, x19, [sp, #128] ; 16-byte Folded Spill66; CHECK-NEXT: ; InlineAsm Start67; CHECK-NEXT: mov x0, #42 ; =0x2a68; CHECK-NEXT: ; InlineAsm End69; CHECK-NEXT: ldp x20, x19, [sp, #128] ; 16-byte Folded Reload70; CHECK-NEXT: ldp x22, x21, [sp, #112] ; 16-byte Folded Reload71; CHECK-NEXT: ldp x24, x23, [sp, #96] ; 16-byte Folded Reload72; CHECK-NEXT: ldp x26, x25, [sp, #80] ; 16-byte Folded Reload73; CHECK-NEXT: ldp x28, x27, [sp, #64] ; 16-byte Folded Reload74; CHECK-NEXT: ldp d9, d8, [sp, #48] ; 16-byte Folded Reload75; CHECK-NEXT: ldp d11, d10, [sp, #32] ; 16-byte Folded Reload76; CHECK-NEXT: ldp d13, d12, [sp, #16] ; 16-byte Folded Reload77; CHECK-NEXT: ldp d15, d14, [sp], #144 ; 16-byte Folded Reload78; CHECK-NEXT: ret79;80; CHECK-NOTMACHO-LABEL: even:81; CHECK-NOTMACHO: // %bb.0:82; CHECK-NOTMACHO-NEXT: stp d15, d13, [sp, #-80]! // 16-byte Folded Spill83; CHECK-NOTMACHO-NEXT: stp d11, d9, [sp, #16] // 16-byte Folded Spill84; CHECK-NOTMACHO-NEXT: str x28, [sp, #32] // 8-byte Spill85; CHECK-NOTMACHO-NEXT: stp x26, x24, [sp, #48] // 16-byte Folded Spill86; CHECK-NOTMACHO-NEXT: stp x22, x20, [sp, #64] // 16-byte Folded Spill87; CHECK-NOTMACHO-NEXT: //APP88; CHECK-NOTMACHO-NEXT: mov x0, #42 // =0x2a89; CHECK-NOTMACHO-NEXT: //NO_APP90; CHECK-NOTMACHO-NEXT: ldp x22, x20, [sp, #64] // 16-byte Folded Reload91; CHECK-NOTMACHO-NEXT: ldr x28, [sp, #32] // 8-byte Reload92; CHECK-NOTMACHO-NEXT: ldp x26, x24, [sp, #48] // 16-byte Folded Reload93; CHECK-NOTMACHO-NEXT: ldp d11, d9, [sp, #16] // 16-byte Folded Reload94; CHECK-NOTMACHO-NEXT: ldp d15, d13, [sp], #80 // 16-byte Folded Reload95; CHECK-NOTMACHO-NEXT: ret96 97 call void asm sideeffect "mov x0, #42", "~{x0},~{x20},~{x22},~{x24},~{x26},~{x28},~{d9},~{d11},~{d13},~{d15}"() nounwind98 ret void99}100