| Duncan P. N. Exon Smith | fee1f50 | 2014-07-29 01:10:57 +0000 | [diff] [blame] | 1 | ; RUN: llvm-dis < %s.bc| FileCheck %s | 
| Duncan P. N. Exon Smith | c8eccd1 | 2014-08-19 21:08:27 +0000 | [diff] [blame] | 2 | ; RUN: verify-uselistorder < %s.bc | 
| Duncan P. N. Exon Smith | fee1f50 | 2014-07-29 01:10:57 +0000 | [diff] [blame] | 3 |  | 
|  | 4 | ; aggregateOperations.3.2.ll.bc was generated by passing this file to llvm-as-3.2. | 
|  | 5 | ; The test checks that LLVM does not misread instructions with aggregate operands | 
|  | 6 | ; in older bitcode files. | 
|  | 7 |  | 
|  | 8 | define void @extractvalue([4 x i8] %x1, [4 x [4 x i8]] %x2, {{i32, float}} %x3){ | 
|  | 9 | entry: | 
|  | 10 | ; CHECK: %res1 = extractvalue [4 x i8] %x1, 0 | 
|  | 11 | %res1 = extractvalue [4 x i8] %x1, 0 | 
|  | 12 |  | 
|  | 13 | ; CHECK-NEXT: %res2 = extractvalue [4 x [4 x i8]] %x2, 1 | 
|  | 14 | %res2 = extractvalue [4 x [4 x i8 ]] %x2, 1 | 
|  | 15 |  | 
|  | 16 | ; CHECK-NEXT: %res3 = extractvalue [4 x [4 x i8]] %x2, 0, 1 | 
|  | 17 | %res3 = extractvalue [4 x [4 x i8 ]] %x2, 0, 1 | 
|  | 18 |  | 
|  | 19 | ; CHECK-NEXT: %res4 = extractvalue { { i32, float } } %x3, 0, 1 | 
|  | 20 | %res4 = extractvalue {{i32, float}} %x3, 0, 1 | 
|  | 21 |  | 
|  | 22 | ret void | 
|  | 23 | } | 
|  | 24 |  | 
|  | 25 | define void @insertvalue([4 x [4 x i8 ]] %x1){ | 
|  | 26 | entry: | 
|  | 27 | ; CHECK: %res1 = insertvalue [4 x [4 x i8]] %x1, i8 0, 0, 0 | 
|  | 28 | %res1 = insertvalue [4 x [4 x i8 ]] %x1, i8 0, 0, 0 | 
|  | 29 |  | 
|  | 30 | ; CHECK-NEXT: %res2 = insertvalue [4 x [4 x i8]] undef, i8 0, 0, 0 | 
|  | 31 | %res2 = insertvalue [4 x [4 x i8 ]] undef, i8 0, 0, 0 | 
|  | 32 |  | 
|  | 33 | ret void | 
|  | 34 | } |