comparison test/CodeGen/SystemZ/int-const-03.ll @ 95:afa8332a0e37

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 95c75e76d11b
children
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
68 ; Check the high end of the MVI range. 68 ; Check the high end of the MVI range.
69 define void @f8(i8 *%src) { 69 define void @f8(i8 *%src) {
70 ; CHECK-LABEL: f8: 70 ; CHECK-LABEL: f8:
71 ; CHECK: mvi 4095(%r2), 42 71 ; CHECK: mvi 4095(%r2), 42
72 ; CHECK: br %r14 72 ; CHECK: br %r14
73 %ptr = getelementptr i8 *%src, i64 4095 73 %ptr = getelementptr i8, i8 *%src, i64 4095
74 store i8 42, i8 *%ptr 74 store i8 42, i8 *%ptr
75 ret void 75 ret void
76 } 76 }
77 77
78 ; Check the next byte up, which should use MVIY instead of MVI. 78 ; Check the next byte up, which should use MVIY instead of MVI.
79 define void @f9(i8 *%src) { 79 define void @f9(i8 *%src) {
80 ; CHECK-LABEL: f9: 80 ; CHECK-LABEL: f9:
81 ; CHECK: mviy 4096(%r2), 42 81 ; CHECK: mviy 4096(%r2), 42
82 ; CHECK: br %r14 82 ; CHECK: br %r14
83 %ptr = getelementptr i8 *%src, i64 4096 83 %ptr = getelementptr i8, i8 *%src, i64 4096
84 store i8 42, i8 *%ptr 84 store i8 42, i8 *%ptr
85 ret void 85 ret void
86 } 86 }
87 87
88 ; Check the high end of the MVIY range. 88 ; Check the high end of the MVIY range.
89 define void @f10(i8 *%src) { 89 define void @f10(i8 *%src) {
90 ; CHECK-LABEL: f10: 90 ; CHECK-LABEL: f10:
91 ; CHECK: mviy 524287(%r2), 42 91 ; CHECK: mviy 524287(%r2), 42
92 ; CHECK: br %r14 92 ; CHECK: br %r14
93 %ptr = getelementptr i8 *%src, i64 524287 93 %ptr = getelementptr i8, i8 *%src, i64 524287
94 store i8 42, i8 *%ptr 94 store i8 42, i8 *%ptr
95 ret void 95 ret void
96 } 96 }
97 97
98 ; Check the next byte up, which needs separate address logic. 98 ; Check the next byte up, which needs separate address logic.
100 define void @f11(i8 *%src) { 100 define void @f11(i8 *%src) {
101 ; CHECK-LABEL: f11: 101 ; CHECK-LABEL: f11:
102 ; CHECK: agfi %r2, 524288 102 ; CHECK: agfi %r2, 524288
103 ; CHECK: mvi 0(%r2), 42 103 ; CHECK: mvi 0(%r2), 42
104 ; CHECK: br %r14 104 ; CHECK: br %r14
105 %ptr = getelementptr i8 *%src, i64 524288 105 %ptr = getelementptr i8, i8 *%src, i64 524288
106 store i8 42, i8 *%ptr 106 store i8 42, i8 *%ptr
107 ret void 107 ret void
108 } 108 }
109 109
110 ; Check the high end of the negative MVIY range. 110 ; Check the high end of the negative MVIY range.
111 define void @f12(i8 *%src) { 111 define void @f12(i8 *%src) {
112 ; CHECK-LABEL: f12: 112 ; CHECK-LABEL: f12:
113 ; CHECK: mviy -1(%r2), 42 113 ; CHECK: mviy -1(%r2), 42
114 ; CHECK: br %r14 114 ; CHECK: br %r14
115 %ptr = getelementptr i8 *%src, i64 -1 115 %ptr = getelementptr i8, i8 *%src, i64 -1
116 store i8 42, i8 *%ptr 116 store i8 42, i8 *%ptr
117 ret void 117 ret void
118 } 118 }
119 119
120 ; Check the low end of the MVIY range. 120 ; Check the low end of the MVIY range.
121 define void @f13(i8 *%src) { 121 define void @f13(i8 *%src) {
122 ; CHECK-LABEL: f13: 122 ; CHECK-LABEL: f13:
123 ; CHECK: mviy -524288(%r2), 42 123 ; CHECK: mviy -524288(%r2), 42
124 ; CHECK: br %r14 124 ; CHECK: br %r14
125 %ptr = getelementptr i8 *%src, i64 -524288 125 %ptr = getelementptr i8, i8 *%src, i64 -524288
126 store i8 42, i8 *%ptr 126 store i8 42, i8 *%ptr
127 ret void 127 ret void
128 } 128 }
129 129
130 ; Check the next byte down, which needs separate address logic. 130 ; Check the next byte down, which needs separate address logic.
132 define void @f14(i8 *%src) { 132 define void @f14(i8 *%src) {
133 ; CHECK-LABEL: f14: 133 ; CHECK-LABEL: f14:
134 ; CHECK: agfi %r2, -524289 134 ; CHECK: agfi %r2, -524289
135 ; CHECK: mvi 0(%r2), 42 135 ; CHECK: mvi 0(%r2), 42
136 ; CHECK: br %r14 136 ; CHECK: br %r14
137 %ptr = getelementptr i8 *%src, i64 -524289 137 %ptr = getelementptr i8, i8 *%src, i64 -524289
138 store i8 42, i8 *%ptr 138 store i8 42, i8 *%ptr
139 ret void 139 ret void
140 } 140 }
141 141
142 ; Check that MVI does not allow an index. We prefer STC in that case. 142 ; Check that MVI does not allow an index. We prefer STC in that case.