xref: /llvm-project/llvm/test/Bitcode/intrinsics-with-unnamed-types.ll (revision e45cf479231fc144b4e1eb8b3e3bd2f578b6907d)
104790d9cSJeroen Dobbelaere; RUN: llvm-as -o - %s | llvm-dis -o - 2>&1 | FileCheck %s
204790d9cSJeroen Dobbelaere
304790d9cSJeroen Dobbelaere; Make sure we can assemble and disassemble IR containing intrinsics with
404790d9cSJeroen Dobbelaere; unnamed types.
504790d9cSJeroen Dobbelaere
604790d9cSJeroen Dobbelaere%1 = type opaque
704790d9cSJeroen Dobbelaere%0 = type opaque
804790d9cSJeroen Dobbelaere
904790d9cSJeroen Dobbelaere; CHECK-LABEL: @f0(
10*e45cf479SNikita Popov; CHECK: %c1 = call ptr @llvm.ssa.copy.p0(ptr %arg)
11*e45cf479SNikita Popov; CHECK: %c2 = call ptr @llvm.ssa.copy.p0(ptr %tmp)
12*e45cf479SNikita Popov; CHECK: %c3 = call ptr @llvm.ssa.copy.p0(ptr %arg2)
13*e45cf479SNikita Popov; CHECK: %c4 = call ptr @llvm.ssa.copy.p0(ptr %tmp2)
1404790d9cSJeroen Dobbelaere
1504790d9cSJeroen Dobbelaeredefine void @f0(%0* %arg, %1* %tmp, %1** %tmp2, %0** %arg2) {
1604790d9cSJeroen Dobbelaerebb:
1704790d9cSJeroen Dobbelaere  %cmp1 = icmp ne %0* %arg, null
1804790d9cSJeroen Dobbelaere  %c1 = call %0* @llvm.ssa.copy.p0s_s.0(%0* %arg)
1904790d9cSJeroen Dobbelaere  %c2 = call %1* @llvm.ssa.copy.p0s_s.1(%1* %tmp)
2004790d9cSJeroen Dobbelaere  %c3 = call %0** @llvm.ssa.copy.p0p0s_s.1(%0** %arg2)
2104790d9cSJeroen Dobbelaere  %c4 = call %1** @llvm.ssa.copy.p0p0s_s.0(%1** %tmp2)
2204790d9cSJeroen Dobbelaere  ret void
2304790d9cSJeroen Dobbelaere}
2404790d9cSJeroen Dobbelaere
2504790d9cSJeroen Dobbelaeredeclare %0* @llvm.ssa.copy.p0s_s.0(%0* returned)
2604790d9cSJeroen Dobbelaere
2704790d9cSJeroen Dobbelaeredeclare %1* @llvm.ssa.copy.p0s_s.1(%1* returned)
2804790d9cSJeroen Dobbelaere
2904790d9cSJeroen Dobbelaeredeclare %0** @llvm.ssa.copy.p0p0s_s.1(%0** returned)
3004790d9cSJeroen Dobbelaere
3104790d9cSJeroen Dobbelaeredeclare %1** @llvm.ssa.copy.p0p0s_s.0(%1** returned)
32