Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/SystemZ/or-05.ll @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | afa8332a0e37 |
children |
comparison
equal
deleted
inserted
replaced
134:3a76565eade5 | 147:c2174574ed3a |
---|---|
5 ; Check the lowest useful constant, expressed as a signed integer. | 5 ; Check the lowest useful constant, expressed as a signed integer. |
6 define void @f1(i8 *%ptr) { | 6 define void @f1(i8 *%ptr) { |
7 ; CHECK-LABEL: f1: | 7 ; CHECK-LABEL: f1: |
8 ; CHECK: oi 0(%r2), 1 | 8 ; CHECK: oi 0(%r2), 1 |
9 ; CHECK: br %r14 | 9 ; CHECK: br %r14 |
10 %val = load i8 , i8 *%ptr | 10 %val = load i8, i8 *%ptr |
11 %or = or i8 %val, -255 | 11 %or = or i8 %val, -255 |
12 store i8 %or, i8 *%ptr | 12 store i8 %or, i8 *%ptr |
13 ret void | 13 ret void |
14 } | 14 } |
15 | 15 |
16 ; Check the highest useful constant, expressed as a signed integer. | 16 ; Check the highest useful constant, expressed as a signed integer. |
17 define void @f2(i8 *%ptr) { | 17 define void @f2(i8 *%ptr) { |
18 ; CHECK-LABEL: f2: | 18 ; CHECK-LABEL: f2: |
19 ; CHECK: oi 0(%r2), 254 | 19 ; CHECK: oi 0(%r2), 254 |
20 ; CHECK: br %r14 | 20 ; CHECK: br %r14 |
21 %val = load i8 , i8 *%ptr | 21 %val = load i8, i8 *%ptr |
22 %or = or i8 %val, -2 | 22 %or = or i8 %val, -2 |
23 store i8 %or, i8 *%ptr | 23 store i8 %or, i8 *%ptr |
24 ret void | 24 ret void |
25 } | 25 } |
26 | 26 |
27 ; Check the lowest useful constant, expressed as an unsigned integer. | 27 ; Check the lowest useful constant, expressed as an unsigned integer. |
28 define void @f3(i8 *%ptr) { | 28 define void @f3(i8 *%ptr) { |
29 ; CHECK-LABEL: f3: | 29 ; CHECK-LABEL: f3: |
30 ; CHECK: oi 0(%r2), 1 | 30 ; CHECK: oi 0(%r2), 1 |
31 ; CHECK: br %r14 | 31 ; CHECK: br %r14 |
32 %val = load i8 , i8 *%ptr | 32 %val = load i8, i8 *%ptr |
33 %or = or i8 %val, 1 | 33 %or = or i8 %val, 1 |
34 store i8 %or, i8 *%ptr | 34 store i8 %or, i8 *%ptr |
35 ret void | 35 ret void |
36 } | 36 } |
37 | 37 |
38 ; Check the highest useful constant, expressed as a unsigned integer. | 38 ; Check the highest useful constant, expressed as a unsigned integer. |
39 define void @f4(i8 *%ptr) { | 39 define void @f4(i8 *%ptr) { |
40 ; CHECK-LABEL: f4: | 40 ; CHECK-LABEL: f4: |
41 ; CHECK: oi 0(%r2), 254 | 41 ; CHECK: oi 0(%r2), 254 |
42 ; CHECK: br %r14 | 42 ; CHECK: br %r14 |
43 %val = load i8 , i8 *%ptr | 43 %val = load i8, i8 *%ptr |
44 %or = or i8 %val, 254 | 44 %or = or i8 %val, 254 |
45 store i8 %or, i8 *%ptr | 45 store i8 %or, i8 *%ptr |
46 ret void | 46 ret void |
47 } | 47 } |
48 | 48 |
50 define void @f5(i8 *%src) { | 50 define void @f5(i8 *%src) { |
51 ; CHECK-LABEL: f5: | 51 ; CHECK-LABEL: f5: |
52 ; CHECK: oi 4095(%r2), 127 | 52 ; CHECK: oi 4095(%r2), 127 |
53 ; CHECK: br %r14 | 53 ; CHECK: br %r14 |
54 %ptr = getelementptr i8, i8 *%src, i64 4095 | 54 %ptr = getelementptr i8, i8 *%src, i64 4095 |
55 %val = load i8 , i8 *%ptr | 55 %val = load i8, i8 *%ptr |
56 %or = or i8 %val, 127 | 56 %or = or i8 %val, 127 |
57 store i8 %or, i8 *%ptr | 57 store i8 %or, i8 *%ptr |
58 ret void | 58 ret void |
59 } | 59 } |
60 | 60 |
62 define void @f6(i8 *%src) { | 62 define void @f6(i8 *%src) { |
63 ; CHECK-LABEL: f6: | 63 ; CHECK-LABEL: f6: |
64 ; CHECK: oiy 4096(%r2), 127 | 64 ; CHECK: oiy 4096(%r2), 127 |
65 ; CHECK: br %r14 | 65 ; CHECK: br %r14 |
66 %ptr = getelementptr i8, i8 *%src, i64 4096 | 66 %ptr = getelementptr i8, i8 *%src, i64 4096 |
67 %val = load i8 , i8 *%ptr | 67 %val = load i8, i8 *%ptr |
68 %or = or i8 %val, 127 | 68 %or = or i8 %val, 127 |
69 store i8 %or, i8 *%ptr | 69 store i8 %or, i8 *%ptr |
70 ret void | 70 ret void |
71 } | 71 } |
72 | 72 |
74 define void @f7(i8 *%src) { | 74 define void @f7(i8 *%src) { |
75 ; CHECK-LABEL: f7: | 75 ; CHECK-LABEL: f7: |
76 ; CHECK: oiy 524287(%r2), 127 | 76 ; CHECK: oiy 524287(%r2), 127 |
77 ; CHECK: br %r14 | 77 ; CHECK: br %r14 |
78 %ptr = getelementptr i8, i8 *%src, i64 524287 | 78 %ptr = getelementptr i8, i8 *%src, i64 524287 |
79 %val = load i8 , i8 *%ptr | 79 %val = load i8, i8 *%ptr |
80 %or = or i8 %val, 127 | 80 %or = or i8 %val, 127 |
81 store i8 %or, i8 *%ptr | 81 store i8 %or, i8 *%ptr |
82 ret void | 82 ret void |
83 } | 83 } |
84 | 84 |
88 ; CHECK-LABEL: f8: | 88 ; CHECK-LABEL: f8: |
89 ; CHECK: agfi %r2, 524288 | 89 ; CHECK: agfi %r2, 524288 |
90 ; CHECK: oi 0(%r2), 127 | 90 ; CHECK: oi 0(%r2), 127 |
91 ; CHECK: br %r14 | 91 ; CHECK: br %r14 |
92 %ptr = getelementptr i8, i8 *%src, i64 524288 | 92 %ptr = getelementptr i8, i8 *%src, i64 524288 |
93 %val = load i8 , i8 *%ptr | 93 %val = load i8, i8 *%ptr |
94 %or = or i8 %val, 127 | 94 %or = or i8 %val, 127 |
95 store i8 %or, i8 *%ptr | 95 store i8 %or, i8 *%ptr |
96 ret void | 96 ret void |
97 } | 97 } |
98 | 98 |
100 define void @f9(i8 *%src) { | 100 define void @f9(i8 *%src) { |
101 ; CHECK-LABEL: f9: | 101 ; CHECK-LABEL: f9: |
102 ; CHECK: oiy -1(%r2), 127 | 102 ; CHECK: oiy -1(%r2), 127 |
103 ; CHECK: br %r14 | 103 ; CHECK: br %r14 |
104 %ptr = getelementptr i8, i8 *%src, i64 -1 | 104 %ptr = getelementptr i8, i8 *%src, i64 -1 |
105 %val = load i8 , i8 *%ptr | 105 %val = load i8, i8 *%ptr |
106 %or = or i8 %val, 127 | 106 %or = or i8 %val, 127 |
107 store i8 %or, i8 *%ptr | 107 store i8 %or, i8 *%ptr |
108 ret void | 108 ret void |
109 } | 109 } |
110 | 110 |
112 define void @f10(i8 *%src) { | 112 define void @f10(i8 *%src) { |
113 ; CHECK-LABEL: f10: | 113 ; CHECK-LABEL: f10: |
114 ; CHECK: oiy -524288(%r2), 127 | 114 ; CHECK: oiy -524288(%r2), 127 |
115 ; CHECK: br %r14 | 115 ; CHECK: br %r14 |
116 %ptr = getelementptr i8, i8 *%src, i64 -524288 | 116 %ptr = getelementptr i8, i8 *%src, i64 -524288 |
117 %val = load i8 , i8 *%ptr | 117 %val = load i8, i8 *%ptr |
118 %or = or i8 %val, 127 | 118 %or = or i8 %val, 127 |
119 store i8 %or, i8 *%ptr | 119 store i8 %or, i8 *%ptr |
120 ret void | 120 ret void |
121 } | 121 } |
122 | 122 |
126 ; CHECK-LABEL: f11: | 126 ; CHECK-LABEL: f11: |
127 ; CHECK: agfi %r2, -524289 | 127 ; CHECK: agfi %r2, -524289 |
128 ; CHECK: oi 0(%r2), 127 | 128 ; CHECK: oi 0(%r2), 127 |
129 ; CHECK: br %r14 | 129 ; CHECK: br %r14 |
130 %ptr = getelementptr i8, i8 *%src, i64 -524289 | 130 %ptr = getelementptr i8, i8 *%src, i64 -524289 |
131 %val = load i8 , i8 *%ptr | 131 %val = load i8, i8 *%ptr |
132 %or = or i8 %val, 127 | 132 %or = or i8 %val, 127 |
133 store i8 %or, i8 *%ptr | 133 store i8 %or, i8 *%ptr |
134 ret void | 134 ret void |
135 } | 135 } |
136 | 136 |
141 ; CHECK: oi 4095(%r2), 127 | 141 ; CHECK: oi 4095(%r2), 127 |
142 ; CHECK: br %r14 | 142 ; CHECK: br %r14 |
143 %add1 = add i64 %src, %index | 143 %add1 = add i64 %src, %index |
144 %add2 = add i64 %add1, 4095 | 144 %add2 = add i64 %add1, 4095 |
145 %ptr = inttoptr i64 %add2 to i8 * | 145 %ptr = inttoptr i64 %add2 to i8 * |
146 %val = load i8 , i8 *%ptr | 146 %val = load i8, i8 *%ptr |
147 %or = or i8 %val, 127 | 147 %or = or i8 %val, 127 |
148 store i8 %or, i8 *%ptr | 148 store i8 %or, i8 *%ptr |
149 ret void | 149 ret void |
150 } | 150 } |
151 | 151 |
156 ; CHECK: oiy 4096(%r2), 127 | 156 ; CHECK: oiy 4096(%r2), 127 |
157 ; CHECK: br %r14 | 157 ; CHECK: br %r14 |
158 %add1 = add i64 %src, %index | 158 %add1 = add i64 %src, %index |
159 %add2 = add i64 %add1, 4096 | 159 %add2 = add i64 %add1, 4096 |
160 %ptr = inttoptr i64 %add2 to i8 * | 160 %ptr = inttoptr i64 %add2 to i8 * |
161 %val = load i8 , i8 *%ptr | 161 %val = load i8, i8 *%ptr |
162 %or = or i8 %val, 127 | 162 %or = or i8 %val, 127 |
163 store i8 %or, i8 *%ptr | 163 store i8 %or, i8 *%ptr |
164 ret void | 164 ret void |
165 } | 165 } |