brintos

brintos / llvm-project-archived public Read only

0
0
Text · 577 B · 530c2ac Raw
23 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3; The bug can be found here:4; https://github.com/rust-lang/rust/issues/981675;6; In this test, `extractvalue` + `call` generate a copy with overlapping7; registers (`$r25r24 = COPY $r24r23`) that used to be expanded incorrectly.8 9define void @main() {10; CHECK-LABEL: main:11; CHECK: rcall foo12; CHECK-NEXT: mov r25, r2413; CHECK-NEXT: mov r24, r2314; CHECK-NEXT: rcall bar15  %1 = call { i8, i16 } @foo()16  %2 = extractvalue { i8, i16 } %1, 117  call void @bar(i16 %2)18  ret void19}20 21declare { i8, i16 } @foo()22declare void @bar(i16 %0)23