brintos

brintos / llvm-project-archived public Read only

0
0
Text · 868 B · a2b38db Raw
33 lines · plain
1; RUN: opt -S -passes=deadargelim %s | FileCheck %s2 3define internal { i64, i64 } @f(i64 %a, i64 %b) {4start:5  %0 = insertvalue { i64, i64 } undef, i64 %a, 06  %1 = insertvalue { i64, i64 } %0, i64 %b, 17  ret { i64, i64 } %18}9 10; Check that we don't delete either of g's return values11 12; CHECK-LABEL: define internal { i64, i64 } @g(i64 %a, i64 %b)13define internal { i64, i64 } @g(i64 %a, i64 %b) {14start:15  %0 = call { i64, i64 } @f(i64 %a, i64 %b)16  ret { i64, i64 } %017}18 19declare dso_local i32 @test(i64, i64)20 21define i32 @main(i32 %argc, ptr %argv) {22start:23  %x = call { i64, i64 } @g(i64 13, i64 42)24  %x.0 = extractvalue { i64, i64 } %x, 025  %x.1 = extractvalue { i64, i64 } %x, 126  %z = bitcast i64 %x.0 to i6427  %y = call { i64, i64 } @f(i64 %x.0, i64 %x.1)28  %y.1 = extractvalue { i64, i64 } %y, 129  %0 = call i32 @test(i64 %x.0, i64 %y.1)30  ret i32 %031}32 33