30 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S < %s | FileCheck %s3 4; This is an overloaded struct return, we should not try to update it to an5; anonymous struct return.6 7%ty = type { i32 }8 9define %ty @test(%ty %arg) {10; CHECK-LABEL: @test(11; CHECK-NEXT: [[COPY:%.*]] = call [[TY:%.*]] @llvm.ssa.copy.s_tys([[TY]] [[ARG:%.*]])12; CHECK-NEXT: ret [[TY]] [[COPY]]13;14 %copy = call %ty @llvm.ssa.copy.s_tys(%ty %arg)15 ret %ty %copy16}17 18define %ty @test_not_real_intrinsic() {19; CHECK-LABEL: @test_not_real_intrinsic(20; CHECK-NEXT: [[RET:%.*]] = call [[TY:%.*]] @llvm.dummy()21; CHECK-NEXT: ret [[TY]] [[RET]]22;23 %ret = call %ty @llvm.dummy()24 ret %ty %ret25}26 27declare %ty @llvm.dummy()28 29declare %ty @llvm.ssa.copy.s_tys(%ty)30