; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S < %s | FileCheck %s ; This is an overloaded struct return, we should not try to update it to an ; anonymous struct return. %ty = type { i32 } define %ty @test(%ty %arg) { ; CHECK-LABEL: @test( ; CHECK-NEXT: [[COPY:%.*]] = call [[TY:%.*]] @llvm.ssa.copy.s_tys([[TY]] [[ARG:%.*]]) ; CHECK-NEXT: ret [[TY]] [[COPY]] ; %copy = call %ty @llvm.ssa.copy.s_tys(%ty %arg) ret %ty %copy } define %ty @test_not_real_intrinsic() { ; CHECK-LABEL: @test_not_real_intrinsic( ; CHECK-NEXT: [[RET:%.*]] = call [[TY:%.*]] @llvm.dummy() ; CHECK-NEXT: ret [[TY]] [[RET]] ; %ret = call %ty @llvm.dummy() ret %ty %ret } declare %ty @llvm.dummy() declare %ty @llvm.ssa.copy.s_tys(%ty)