Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Assembler / struct-ret-without-upgrade.ll
blob14f931c23abb6b266a1caa37ec9d4ff8599f9024
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S < %s | FileCheck %s
4 ; This is an overloaded struct return, we should not try to update it to an
5 ; anonymous struct return.
7 %ty = type { i32 }
9 define %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]]
14   %copy = call %ty @llvm.ssa.copy.s_tys(%ty %arg)
15   ret %ty %copy
18 define %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]]
23   %ret = call %ty @llvm.dummy()
24   ret %ty %ret
27 declare %ty @llvm.dummy()
29 declare %ty @llvm.ssa.copy.s_tys(%ty)