| Sanjoy Das | 0407108 | 2016-01-29 00:28:57 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -rewrite-statepoints-for-gc -spp-print-base-pointers -S 2>&1 | FileCheck %s | 
| Philip Reames | a5aeaf4 | 2015-02-28 00:20:48 +0000 | [diff] [blame] | 2 |  | 
|  | 3 | ; CHECK: derived %next.i64 base %base_obj | 
|  | 4 |  | 
|  | 5 | define void @test(i64 addrspace(1)* %base_obj) gc "statepoint-example" { | 
|  | 6 | entry: | 
|  | 7 | %obj = getelementptr i64, i64 addrspace(1)* %base_obj, i32 1 | 
|  | 8 | br label %loop | 
|  | 9 |  | 
| Sanjoy Das | 0407108 | 2016-01-29 00:28:57 +0000 | [diff] [blame] | 10 | loop:                                             ; preds = %loop, %entry | 
| Philip Reames | a5aeaf4 | 2015-02-28 00:20:48 +0000 | [diff] [blame] | 11 | %current = phi i64 addrspace(1)* [ %obj, %entry ], [ %next.i64, %loop ] | 
|  | 12 | %current.i32 = bitcast i64 addrspace(1)* %current to i32 addrspace(1)* | 
|  | 13 | %next.i32 = getelementptr i32, i32 addrspace(1)* %current.i32, i32 1 | 
|  | 14 | %next.i64 = bitcast i32 addrspace(1)* %next.i32 to i64 addrspace(1)* | 
| Sanjoy Das | 0407108 | 2016-01-29 00:28:57 +0000 | [diff] [blame] | 15 | call void @do_safepoint() [ "deopt"(i32 0, i32 -1, i32 0, i32 0, i32 0) ] | 
| Philip Reames | a5aeaf4 | 2015-02-28 00:20:48 +0000 | [diff] [blame] | 16 | br label %loop | 
|  | 17 | } | 
|  | 18 |  | 
|  | 19 | declare void @do_safepoint() |