brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · e331bfb Raw
128 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s3 4; Allocate 8 bytes, no need to align stack.5define void @f0() {6; CHECK-LABEL: f0:7; CHECK:       # %bb.0:8; CHECK-NEXT:    aghi %r15, -1689; CHECK-NEXT:    .cfi_def_cfa_offset 32810; CHECK-NEXT:    mvghi 160(%r15), 1011; CHECK-NEXT:    aghi %r15, 16812; CHECK-NEXT:    br %r1413  %x = alloca i6414  store volatile i64 10, ptr %x15  ret void16}17 18; Allocate ptr 8, no need to align stack.19define void @f1(i64 %len) {20; CHECK-LABEL: f1:21; CHECK:       # %bb.0:22; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)23; CHECK-NEXT:    .cfi_offset %r11, -7224; CHECK-NEXT:    .cfi_offset %r15, -4025; CHECK-NEXT:    aghi %r15, -16026; CHECK-NEXT:    .cfi_def_cfa_offset 32027; CHECK-NEXT:    lgr %r11, %r1528; CHECK-NEXT:    .cfi_def_cfa_register %r1129; CHECK-NEXT:    lgr %r1, %r1530; CHECK-NEXT:    sllg %r0, %r2, 331; CHECK-NEXT:    sgr %r1, %r032; CHECK-NEXT:    la %r2, 160(%r1)33; CHECK-NEXT:    lgr %r15, %r134; CHECK-NEXT:    mvghi 0(%r2), 1035; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)36; CHECK-NEXT:    br %r1437  %x = alloca i64, i64 %len38  store volatile i64 10, ptr %x39  ret void40}41 42; Static alloca, align 128.43define void @f2() {44; CHECK-LABEL: f2:45; CHECK:       # %bb.0:46; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)47; CHECK-NEXT:    .cfi_offset %r11, -7248; CHECK-NEXT:    .cfi_offset %r15, -4049; CHECK-NEXT:    aghi %r15, -16050; CHECK-NEXT:    .cfi_def_cfa_offset 32051; CHECK-NEXT:    lgr %r11, %r1552; CHECK-NEXT:    .cfi_def_cfa_register %r1153; CHECK-NEXT:    lgr %r1, %r1554; CHECK-NEXT:    aghi %r1, -12855; CHECK-NEXT:    la %r2, 280(%r1)56; CHECK-NEXT:    nill %r2, 6540857; CHECK-NEXT:    lgr %r15, %r158; CHECK-NEXT:    mvghi 0(%r2), 1059; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)60; CHECK-NEXT:    br %r1461  %x = alloca i64, i64 1, align 12862  store volatile i64 10, ptr %x, align 12863  ret void64}65 66; Dynamic alloca, align 128.67define void @f3(i64 %len) {68; CHECK-LABEL: f3:69; CHECK:       # %bb.0:70; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)71; CHECK-NEXT:    .cfi_offset %r11, -7272; CHECK-NEXT:    .cfi_offset %r15, -4073; CHECK-NEXT:    aghi %r15, -16074; CHECK-NEXT:    .cfi_def_cfa_offset 32075; CHECK-NEXT:    lgr %r11, %r1576; CHECK-NEXT:    .cfi_def_cfa_register %r1177; CHECK-NEXT:    lgr %r1, %r1578; CHECK-NEXT:    sllg %r0, %r2, 379; CHECK-NEXT:    sgr %r1, %r080; CHECK-NEXT:    lay %r15, -120(%r1)81; CHECK-NEXT:    la %r1, 160(%r1)82; CHECK-NEXT:    nill %r1, 6540883; CHECK-NEXT:    mvghi 0(%r1), 1084; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)85; CHECK-NEXT:    br %r1486  %x = alloca i64, i64 %len, align 12887  store volatile i64 10, ptr %x, align 12888  ret void89}90 91; Static alloca w/out alignment - part of frame.92define void @f4() {93; CHECK-LABEL: f4:94; CHECK:       # %bb.0:95; CHECK-NEXT:    aghi %r15, -16896; CHECK-NEXT:    .cfi_def_cfa_offset 32897; CHECK-NEXT:    mvhi 164(%r15), 1098; CHECK-NEXT:    aghi %r15, 16899; CHECK-NEXT:    br %r14100  %x = alloca i32101  store volatile i32 10, ptr %x102  ret void103}104 105; Static alloca of one i32, aligned by 128.106define void @f5() {107; CHECK-LABEL: f5:108; CHECK:       # %bb.0:109; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)110; CHECK-NEXT:    .cfi_offset %r11, -72111; CHECK-NEXT:    .cfi_offset %r15, -40112; CHECK-NEXT:    aghi %r15, -160113; CHECK-NEXT:    .cfi_def_cfa_offset 320114; CHECK-NEXT:    lgr %r11, %r15115; CHECK-NEXT:    .cfi_def_cfa_register %r11116; CHECK-NEXT:    lgr %r1, %r15117; CHECK-NEXT:    aghi %r1, -128118; CHECK-NEXT:    la %r2, 280(%r1)119; CHECK-NEXT:    nill %r2, 65408120; CHECK-NEXT:    lgr %r15, %r1121; CHECK-NEXT:    mvhi 0(%r2), 10122; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)123; CHECK-NEXT:    br %r14124  %x = alloca i32, i64 1, align 128125  store volatile i32 10, ptr %x126  ret void127}128