Nikita Popov | be5af50 | 2021-07-16 20:26:40 +0200 | [diff] [blame] | 1 | ; RUN: opt -S < %s.bc | FileCheck %s |
| 2 | |
| 3 | %struct.s = type { i32, i32 } |
| 4 | |
| 5 | define void @test(%struct.s* %arg) { |
| 6 | ; CHECK-LABEL: define void @test |
| 7 | ; CHECK: %x = call %struct.s* @llvm.preserve.array.access.index.p0s_struct.ss.p0s_struct.ss(%struct.s* elementtype(%struct.s) %arg, i32 0, i32 2) |
| 8 | ; CHECK: %1 = call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.ss(%struct.s* elementtype(%struct.s) %x, i32 1, i32 1) |
| 9 | %x = call %struct.s* @llvm.preserve.array.access.index.p0s_struct.ss.p0s_struct.ss(%struct.s* %arg, i32 0, i32 2) |
| 10 | call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.ss(%struct.s* %x, i32 1, i32 1) |
| 11 | ret void |
| 12 | } |
| 13 | |
| 14 | declare %struct.s* @llvm.preserve.array.access.index.p0s_struct.ss.p0s_struct.ss(%struct.s*, i32, i32) |
| 15 | declare i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.ss(%struct.s*, i32, i32) |