Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %dag = type { { { i8, { i8 } }, { { i8, { i8 } }, { i8 } } }, { { i8, { i8 } }, { i8 } } }
- define void @test_const(%dag* %dst) {
- entry:
- %updated = insertvalue
- ; Check that we're visiting constants with shared parts
- ; (deduplicated via LLVMContext, forming a proper DAG) correctly:
- %dag {
- { { i8, { i8 } }, { { i8, { i8 } }, { i8 } } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { { i8, { i8 } }, { i8 } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { i8 } { i8 20 }
- }
- },
- { { i8, { i8 } }, { i8 } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { i8 } { i8 20 }
- }
- },
- { { i8, { i8 } }, { i8 } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { i8 } { i8 50 }
- },
- 0,
- 1
- store %dag %updated, %dag* %dst
- ; 10, 20, 10, 20, 50, 10, 20, 20 sequence is expected
- store
- ; Check that we didn't overwrite a previously seen constant
- ; while processing an insertvalue into it:
- %dag {
- { { i8, { i8 } }, { { i8, { i8 } }, { i8 } } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { { i8, { i8 } }, { i8 } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { i8 } { i8 20 }
- }
- },
- { { i8, { i8 } }, { i8 } } {
- { i8, { i8 } } {
- i8 10,
- { i8 } { i8 20 }
- },
- { i8 } { i8 20 }
- }
- },
- %dag* %dst
- ; 10, 20, 10, 20, 20, 10, 20, 20 sequence is expected
- ret void
- }
Add Comment
Please, Sign In to add comment