Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(477)

Side by Side Diff: tests_lit/reader_tests/load.ll

Issue 1161543005: Subzero: Changes needed for LLVM 3.7 integration. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/reader_tests/extern_globals.ll ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Test if we can read load instructions. 1 ; Test if we can read load instructions.
2 2
3 ; RUN: %p2i --no-local-syms -i %s --insts | FileCheck %s 3 ; RUN: %p2i --no-local-syms -i %s --insts | FileCheck %s
4 ; RUN: %if --need=allow_disable_ir_gen --command \ 4 ; RUN: %if --need=allow_disable_ir_gen --command \
5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \ 5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \
6 ; RUN: | %if --need=allow_disable_ir_gen --command \ 6 ; RUN: | %if --need=allow_disable_ir_gen --command \
7 ; RUN: FileCheck --check-prefix=NOIR %s 7 ; RUN: FileCheck --check-prefix=NOIR %s
8 8
9 define i32 @load_i8(i32 %addr) { 9 define i32 @load_i8(i32 %addr) {
10 entry: 10 entry:
11 %addr_i8 = inttoptr i32 %addr to i8* 11 %addr_i8 = inttoptr i32 %addr to i8*
12 %v = load i8* %addr_i8, align 1 12 %v = load i8, i8* %addr_i8, align 1
13 %r = sext i8 %v to i32 13 %r = sext i8 %v to i32
14 ret i32 %r 14 ret i32 %r
15 15
16 ; CHECK: __0: 16 ; CHECK: __0:
17 ; CHECK-NEXT: %__1 = load i8* %__0, align 1 17 ; CHECK-NEXT: %__1 = load i8, i8* %__0, align 1
18 ; CHECK-NEXT: %__2 = sext i8 %__1 to i32 18 ; CHECK-NEXT: %__2 = sext i8 %__1 to i32
19 ; CHECK-NEXT: ret i32 %__2 19 ; CHECK-NEXT: ret i32 %__2
20 } 20 }
21 21
22 define i32 @load_i16(i32 %addr) { 22 define i32 @load_i16(i32 %addr) {
23 entry: 23 entry:
24 %addr_i16 = inttoptr i32 %addr to i16* 24 %addr_i16 = inttoptr i32 %addr to i16*
25 %v = load i16* %addr_i16, align 1 25 %v = load i16, i16* %addr_i16, align 1
26 %r = sext i16 %v to i32 26 %r = sext i16 %v to i32
27 ret i32 %r 27 ret i32 %r
28 28
29 ; CHECK: __0: 29 ; CHECK: __0:
30 ; CHECK-NEXT: %__1 = load i16* %__0, align 1 30 ; CHECK-NEXT: %__1 = load i16, i16* %__0, align 1
31 ; CHECK-NEXT: %__2 = sext i16 %__1 to i32 31 ; CHECK-NEXT: %__2 = sext i16 %__1 to i32
32 ; CHECK-NEXT: ret i32 %__2 32 ; CHECK-NEXT: ret i32 %__2
33 } 33 }
34 34
35 define i32 @load_i32(i32 %addr) { 35 define i32 @load_i32(i32 %addr) {
36 entry: 36 entry:
37 %addr_i32 = inttoptr i32 %addr to i32* 37 %addr_i32 = inttoptr i32 %addr to i32*
38 %v = load i32* %addr_i32, align 1 38 %v = load i32, i32* %addr_i32, align 1
39 ret i32 %v 39 ret i32 %v
40 40
41 ; CHECK: __0: 41 ; CHECK: __0:
42 ; CHECK-NEXT: %__1 = load i32* %__0, align 1 42 ; CHECK-NEXT: %__1 = load i32, i32* %__0, align 1
43 ; CHECK-NEXT: ret i32 %__1 43 ; CHECK-NEXT: ret i32 %__1
44 } 44 }
45 45
46 define i64 @load_i64(i32 %addr) { 46 define i64 @load_i64(i32 %addr) {
47 entry: 47 entry:
48 %addr_i64 = inttoptr i32 %addr to i64* 48 %addr_i64 = inttoptr i32 %addr to i64*
49 %v = load i64* %addr_i64, align 1 49 %v = load i64, i64* %addr_i64, align 1
50 ret i64 %v 50 ret i64 %v
51 51
52 ; CHECK: __0: 52 ; CHECK: __0:
53 ; CHECK-NEXT: %__1 = load i64* %__0, align 1 53 ; CHECK-NEXT: %__1 = load i64, i64* %__0, align 1
54 ; CHECK-NEXT: ret i64 %__1 54 ; CHECK-NEXT: ret i64 %__1
55 } 55 }
56 56
57 define float @load_float_a1(i32 %addr) { 57 define float @load_float_a1(i32 %addr) {
58 entry: 58 entry:
59 %addr_float = inttoptr i32 %addr to float* 59 %addr_float = inttoptr i32 %addr to float*
60 %v = load float* %addr_float, align 1 60 %v = load float, float* %addr_float, align 1
61 ret float %v 61 ret float %v
62 62
63 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default. 63 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default.
64 64
65 ; CHECK: __0: 65 ; CHECK: __0:
66 ; CHECK-NEXT: %__1 = load float* %__0, align 4 66 ; CHECK-NEXT: %__1 = load float, float* %__0, align 4
67 ; CHECK-NEXT: ret float %__1 67 ; CHECK-NEXT: ret float %__1
68 } 68 }
69 69
70 70
71 define float @load_float_a4(i32 %addr) { 71 define float @load_float_a4(i32 %addr) {
72 entry: 72 entry:
73 %addr_float = inttoptr i32 %addr to float* 73 %addr_float = inttoptr i32 %addr to float*
74 %v = load float* %addr_float, align 4 74 %v = load float, float* %addr_float, align 4
75 ret float %v 75 ret float %v
76 76
77 ; CHECK: __0: 77 ; CHECK: __0:
78 ; CHECK-NEXT: %__1 = load float* %__0, align 4 78 ; CHECK-NEXT: %__1 = load float, float* %__0, align 4
79 ; CHECK-NEXT: ret float %__1 79 ; CHECK-NEXT: ret float %__1
80 } 80 }
81 81
82 define double @load_double_a1(i32 %addr) { 82 define double @load_double_a1(i32 %addr) {
83 entry: 83 entry:
84 %addr_double = inttoptr i32 %addr to double* 84 %addr_double = inttoptr i32 %addr to double*
85 %v = load double* %addr_double, align 1 85 %v = load double, double* %addr_double, align 1
86 ret double %v 86 ret double %v
87 87
88 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default. 88 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default.
89 89
90 ; CHECK: __0: 90 ; CHECK: __0:
91 ; CHECK-NEXT: %__1 = load double* %__0, align 8 91 ; CHECK-NEXT: %__1 = load double, double* %__0, align 8
92 ; CHECK-NEXT: ret double %__1 92 ; CHECK-NEXT: ret double %__1
93 } 93 }
94 94
95 95
96 define double @load_double_a8(i32 %addr) { 96 define double @load_double_a8(i32 %addr) {
97 entry: 97 entry:
98 %addr_double = inttoptr i32 %addr to double* 98 %addr_double = inttoptr i32 %addr to double*
99 %v = load double* %addr_double, align 8 99 %v = load double, double* %addr_double, align 8
100 ret double %v 100 ret double %v
101 101
102 ; CHECK: __0: 102 ; CHECK: __0:
103 ; CHECK-NEXT: %__1 = load double* %__0, align 8 103 ; CHECK-NEXT: %__1 = load double, double* %__0, align 8
104 ; CHECK-NEXT: ret double %__1 104 ; CHECK-NEXT: ret double %__1
105 } 105 }
106 106
107 define <16 x i8> @load_v16xI8(i32 %addr) { 107 define <16 x i8> @load_v16xI8(i32 %addr) {
108 entry: 108 entry:
109 %addr_v16xI8 = inttoptr i32 %addr to <16 x i8>* 109 %addr_v16xI8 = inttoptr i32 %addr to <16 x i8>*
110 %v = load <16 x i8>* %addr_v16xI8, align 1 110 %v = load <16 x i8>, <16 x i8>* %addr_v16xI8, align 1
111 ret <16 x i8> %v 111 ret <16 x i8> %v
112 112
113 ; CHECK: __0: 113 ; CHECK: __0:
114 ; CHECK-NEXT: %__1 = load <16 x i8>* %__0, align 1 114 ; CHECK-NEXT: %__1 = load <16 x i8>, <16 x i8>* %__0, align 1
115 ; CHECK-NEXT: ret <16 x i8> %__1 115 ; CHECK-NEXT: ret <16 x i8> %__1
116 } 116 }
117 117
118 define <8 x i16> @load_v8xI16(i32 %addr) { 118 define <8 x i16> @load_v8xI16(i32 %addr) {
119 entry: 119 entry:
120 %addr_v8xI16 = inttoptr i32 %addr to <8 x i16>* 120 %addr_v8xI16 = inttoptr i32 %addr to <8 x i16>*
121 %v = load <8 x i16>* %addr_v8xI16, align 2 121 %v = load <8 x i16>, <8 x i16>* %addr_v8xI16, align 2
122 ret <8 x i16> %v 122 ret <8 x i16> %v
123 123
124 ; CHECK: __0: 124 ; CHECK: __0:
125 ; CHECK-NEXT: %__1 = load <8 x i16>* %__0, align 2 125 ; CHECK-NEXT: %__1 = load <8 x i16>, <8 x i16>* %__0, align 2
126 ; CHECK-NEXT: ret <8 x i16> %__1 126 ; CHECK-NEXT: ret <8 x i16> %__1
127 } 127 }
128 128
129 define <4 x i32> @load_v4xI32(i32 %addr) { 129 define <4 x i32> @load_v4xI32(i32 %addr) {
130 entry: 130 entry:
131 %addr_v4xI32 = inttoptr i32 %addr to <4 x i32>* 131 %addr_v4xI32 = inttoptr i32 %addr to <4 x i32>*
132 %v = load <4 x i32>* %addr_v4xI32, align 4 132 %v = load <4 x i32>, <4 x i32>* %addr_v4xI32, align 4
133 ret <4 x i32> %v 133 ret <4 x i32> %v
134 134
135 ; CHECK: __0: 135 ; CHECK: __0:
136 ; CHECK-NEXT: %__1 = load <4 x i32>* %__0, align 4 136 ; CHECK-NEXT: %__1 = load <4 x i32>, <4 x i32>* %__0, align 4
137 ; CHECK-NEXT: ret <4 x i32> %__1 137 ; CHECK-NEXT: ret <4 x i32> %__1
138 } 138 }
139 139
140 define <4 x float> @load_v4xFloat(i32 %addr) { 140 define <4 x float> @load_v4xFloat(i32 %addr) {
141 entry: 141 entry:
142 %addr_v4xFloat = inttoptr i32 %addr to <4 x float>* 142 %addr_v4xFloat = inttoptr i32 %addr to <4 x float>*
143 %v = load <4 x float>* %addr_v4xFloat, align 4 143 %v = load <4 x float>, <4 x float>* %addr_v4xFloat, align 4
144 ret <4 x float> %v 144 ret <4 x float> %v
145 145
146 ; CHECK: __0: 146 ; CHECK: __0:
147 ; CHECK-NEXT: %__1 = load <4 x float>* %__0, align 4 147 ; CHECK-NEXT: %__1 = load <4 x float>, <4 x float>* %__0, align 4
148 ; CHECK-NEXT: ret <4 x float> %__1 148 ; CHECK-NEXT: ret <4 x float> %__1
149 } 149 }
150 150
151 ; NOIR: Total across all functions 151 ; NOIR: Total across all functions
OLDNEW
« no previous file with comments | « tests_lit/reader_tests/extern_globals.ll ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698