brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 41b8a01 Raw
75 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp --version 42; RUN: llc -O0 -mtriple=x86_64 -verify-machineinstrs < %s | FileCheck %s --check-prefix=CHECK3%large = type [4294967295 x i8]4 5define void @foo() unnamed_addr #0 {6; CHECK-LABEL: foo:7; CHECK:       # %bb.0:8; CHECK-NEXT:    movabsq $8589934472, %rax # imm = 0x1FFFFFF889; CHECK-NEXT:    subq %rax, %rsp10; CHECK-NEXT:    .cfi_def_cfa_offset 858993448011; CHECK-NEXT:    movabsq $4294967177, %rax # imm = 0xFFFFFF8912; CHECK-NEXT:    movb $42, (%rsp,%rax)13; CHECK-NEXT:    movb $43, -118(%rsp)14; CHECK-NEXT:    movabsq $8589934472, %rax # imm = 0x1FFFFFF8815; CHECK-NEXT:    addq %rax, %rsp16; CHECK-NEXT:    .cfi_def_cfa_offset 817; CHECK-NEXT:    retq18  %large1 = alloca %large, align 119  %large2 = alloca %large, align 120  %ptrLarge1 = getelementptr inbounds %large, ptr %large1, i64 0, i64 021  store i8 42, ptr %ptrLarge1, align 122  %ptrLarge2 = getelementptr inbounds %large, ptr %large2, i64 0, i64 023  store i8 43, ptr %ptrLarge2, align 124  ret void25}26 27declare ptr @baz(ptr, ptr, ptr, ptr)28 29define ptr @scavenge_spill() unnamed_addr #0 {30; CHECK-LABEL: scavenge_spill:31; CHECK:       # %bb.0:32; CHECK-NEXT:    movabsq $25769803816, %rax # imm = 0x60000002833; CHECK-NEXT:    subq %rax, %rsp34; CHECK-NEXT:    .cfi_def_cfa_offset 2576980382435; CHECK-NEXT:    movabsq $21474836521, %rax # imm = 0x50000002936; CHECK-NEXT:    leaq (%rsp,%rax), %rdi37; CHECK-NEXT:    movabsq $17179869226, %rax # imm = 0x40000002A38; CHECK-NEXT:    leaq (%rsp,%rax), %rsi39; CHECK-NEXT:    movq %rsi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill40; CHECK-NEXT:    movabsq $12884901931, %rax # imm = 0x30000002B41; CHECK-NEXT:    leaq (%rsp,%rax), %rdx42; CHECK-NEXT:    movq %rdx, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill43; CHECK-NEXT:    movabsq $8589934636, %rax # imm = 0x20000002C44; CHECK-NEXT:    leaq (%rsp,%rax), %rcx45; CHECK-NEXT:    movq %rcx, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill46; CHECK-NEXT:    callq baz@PLT47; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rsi # 8-byte Reload48; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rdx # 8-byte Reload49; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rcx # 8-byte Reload50; CHECK-NEXT:    movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill51; CHECK-NEXT:    leaq 46(%rsp), %rdi52; CHECK-NEXT:    callq baz@PLT53; CHECK-NEXT:    # kill: def $rcx killed $rax54; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload55; CHECK-NEXT:    movabsq $25769803816, %rcx # imm = 0x60000002856; CHECK-NEXT:    addq %rcx, %rsp57; CHECK-NEXT:    .cfi_def_cfa_offset 858; CHECK-NEXT:    retq59  %large1 = alloca %large, align 160  %ptrLarge1 = getelementptr inbounds %large, ptr %large1, i64 0, i64 061  %large2 = alloca %large, align 162  %ptrLarge2 = getelementptr inbounds %large, ptr %large2, i64 0, i64 063  %large3 = alloca %large, align 164  %ptrLarge3 = getelementptr inbounds %large, ptr %large3, i64 0, i64 065  %large4 = alloca %large, align 166  %ptrLarge4 = getelementptr inbounds %large, ptr %large4, i64 0, i64 067  %large5 = alloca %large, align 168  %ptrLarge5 = getelementptr inbounds %large, ptr %large5, i64 0, i64 069  %ret1 = call ptr @baz(ptr %ptrLarge1, ptr %ptrLarge2, ptr %ptrLarge3, ptr %ptrLarge4)70  %large6 = alloca %large, align 171  %ptrLarge6 = getelementptr inbounds %large, ptr %large6, i64 0, i64 072  %ret2 = call ptr @baz(ptr %ptrLarge6, ptr %ptrLarge2, ptr %ptrLarge3, ptr %ptrLarge4)73  ret ptr %ret174}75