brintos

brintos / llvm-project-archived public Read only

0
0
Text · 883 B · 078a47d Raw
28 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O0 -fast-isel -verify-machineinstrs -mtriple=x86_64 < %s | FileCheck %s3 4declare { ptr, i64 } @get()5 6declare void @use(ptr, i64)7 8define void @test(ptr %p) nounwind {9; CHECK-LABEL: test:10; CHECK:       # %bb.0:11; CHECK-NEXT:    pushq %rax12; CHECK-NEXT:    movq %rdi, (%rsp) # 8-byte Spill13; CHECK-NEXT:    callq get@PLT14; CHECK-NEXT:    movq (%rsp), %rdi # 8-byte Reload15; CHECK-NEXT:    movq %rdx, %rsi16; CHECK-NEXT:    movq %rsi, (%rdi)17; CHECK-NEXT:    # implicit-def: $rdi18; CHECK-NEXT:    callq use@PLT19; CHECK-NEXT:    popq %rax20; CHECK-NEXT:    retq21  %struct = call { ptr, i64 } @get()22  %struct.1 = extractvalue { ptr, i64 } %struct, 123  store i64 %struct.1, ptr %p, align 824  %struct.2 = extractvalue { ptr, i64 } %struct, 125  call void @use(ptr undef, i64 %struct.2)26  ret void27}28