Tanya Lattner | 3f7706b | 2004-11-07 06:08:43 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll |
| 2 | ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll |
| 3 | ; RUN: diff %t1.ll %t2.ll |
| 4 | |
Chris Lattner | 5bc20c7 | 2001-10-13 07:16:11 +0000 | [diff] [blame] | 5 | ; This testcase is primarily used for testing that global values can be used as |
| 6 | ; constant pointer initializers. This is tricky because they can be forward |
| 7 | ; declared and involves an icky bytecode encoding. There is no meaningful |
| 8 | ; optimization that can be performed on this file, it is just here to test |
| 9 | ; assembly and disassembly. |
| 10 | ; |
| 11 | |
| 12 | |
| 13 | %t3 = global int * %t1 ;; Forward reference |
| 14 | %t1 = global int 4 |
Vikram S. Adve | b26ff62 | 2002-07-14 23:18:33 +0000 | [diff] [blame] | 15 | %t4 = global int ** %t3 ;; reference to reference |
| 16 | |
Chris Lattner | 5bc20c7 | 2001-10-13 07:16:11 +0000 | [diff] [blame] | 17 | %t2 = global int * %t1 |
| 18 | |
| 19 | global float * %0 ;; Forward numeric reference |
| 20 | global float * %0 ;; Duplicate forward numeric reference |
| 21 | global float 0.0 |
| 22 | global float * %0 ;; Numeric reference |
| 23 | |
| 24 | |
| 25 | %fptr = global void() * %f ;; Forward ref method defn |
| 26 | declare void "f"() ;; External method |
| 27 | |
Vikram S. Adve | b26ff62 | 2002-07-14 23:18:33 +0000 | [diff] [blame] | 28 | %sptr1 = global [11x sbyte]* %somestr ;; Forward ref to a constant |
| 29 | %somestr = constant [11x sbyte] c"hello world" |
| 30 | %sptr2 = global [11x sbyte]* %somestr |
| 31 | |
Chris Lattner | 5bc20c7 | 2001-10-13 07:16:11 +0000 | [diff] [blame] | 32 | implementation |
| 33 | |