Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/SystemZ/branch-06.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 |
---|---|
98 ; CHECK: llc [[REG:%r[0-5]]], | 98 ; CHECK: llc [[REG:%r[0-5]]], |
99 ; CHECK: crje %r2, [[REG]], .L[[LABEL]] | 99 ; CHECK: crje %r2, [[REG]], .L[[LABEL]] |
100 br label %loop | 100 br label %loop |
101 loop: | 101 loop: |
102 %val = call i32 @foo() | 102 %val = call i32 @foo() |
103 %byte = load i8 , i8 *%targetptr | 103 %byte = load i8, i8 *%targetptr |
104 %target = zext i8 %byte to i32 | 104 %target = zext i8 %byte to i32 |
105 %cond = icmp eq i32 %val, %target | 105 %cond = icmp eq i32 %val, %target |
106 br i1 %cond, label %loop, label %exit | 106 br i1 %cond, label %loop, label %exit |
107 exit: | 107 exit: |
108 ret void | 108 ret void |
116 ; CHECK: llh [[REG:%r[0-5]]], | 116 ; CHECK: llh [[REG:%r[0-5]]], |
117 ; CHECK: crje %r2, [[REG]], .L[[LABEL]] | 117 ; CHECK: crje %r2, [[REG]], .L[[LABEL]] |
118 br label %loop | 118 br label %loop |
119 loop: | 119 loop: |
120 %val = call i32 @foo() | 120 %val = call i32 @foo() |
121 %half = load i16 , i16 *%targetptr | 121 %half = load i16, i16 *%targetptr |
122 %target = zext i16 %half to i32 | 122 %target = zext i16 %half to i32 |
123 %cond = icmp eq i32 %val, %target | 123 %cond = icmp eq i32 %val, %target |
124 br i1 %cond, label %loop, label %exit | 124 br i1 %cond, label %loop, label %exit |
125 exit: | 125 exit: |
126 ret void | 126 ret void |
134 ; CHECK: clhrl %r2, g1 | 134 ; CHECK: clhrl %r2, g1 |
135 ; CHECK: je .L[[LABEL]] | 135 ; CHECK: je .L[[LABEL]] |
136 br label %loop | 136 br label %loop |
137 loop: | 137 loop: |
138 %val = call i32 @foo() | 138 %val = call i32 @foo() |
139 %half = load i16 , i16 *@g1 | 139 %half = load i16, i16 *@g1 |
140 %target = zext i16 %half to i32 | 140 %target = zext i16 %half to i32 |
141 %cond = icmp eq i32 %val, %target | 141 %cond = icmp eq i32 %val, %target |
142 br i1 %cond, label %loop, label %exit | 142 br i1 %cond, label %loop, label %exit |
143 exit: | 143 exit: |
144 ret void | 144 ret void |
155 ; CHECK: crjl [[REG1]], [[REG2]], .L[[LABEL]] | 155 ; CHECK: crjl [[REG1]], [[REG2]], .L[[LABEL]] |
156 br label %loop | 156 br label %loop |
157 loop: | 157 loop: |
158 %val = call i32 @foo() | 158 %val = call i32 @foo() |
159 %targetptr2 = getelementptr i8, i8 *%targetptr1, i64 1 | 159 %targetptr2 = getelementptr i8, i8 *%targetptr1, i64 1 |
160 %byte1 = load i8 , i8 *%targetptr1 | 160 %byte1 = load i8, i8 *%targetptr1 |
161 %byte2 = load i8 , i8 *%targetptr2 | 161 %byte2 = load i8, i8 *%targetptr2 |
162 %ext1 = zext i8 %byte1 to i32 | 162 %ext1 = zext i8 %byte1 to i32 |
163 %ext2 = zext i8 %byte2 to i32 | 163 %ext2 = zext i8 %byte2 to i32 |
164 %cond = icmp ult i32 %ext1, %ext2 | 164 %cond = icmp ult i32 %ext1, %ext2 |
165 br i1 %cond, label %loop, label %exit | 165 br i1 %cond, label %loop, label %exit |
166 exit: | 166 exit: |
177 ; CHECK: crjl [[REG1]], [[REG2]], .L[[LABEL]] | 177 ; CHECK: crjl [[REG1]], [[REG2]], .L[[LABEL]] |
178 br label %loop | 178 br label %loop |
179 loop: | 179 loop: |
180 %val = call i32 @foo() | 180 %val = call i32 @foo() |
181 %targetptr2 = getelementptr i16, i16 *%targetptr1, i64 1 | 181 %targetptr2 = getelementptr i16, i16 *%targetptr1, i64 1 |
182 %half1 = load i16 , i16 *%targetptr1 | 182 %half1 = load i16, i16 *%targetptr1 |
183 %half2 = load i16 , i16 *%targetptr2 | 183 %half2 = load i16, i16 *%targetptr2 |
184 %ext1 = zext i16 %half1 to i32 | 184 %ext1 = zext i16 %half1 to i32 |
185 %ext2 = zext i16 %half2 to i32 | 185 %ext2 = zext i16 %half2 to i32 |
186 %cond = icmp ult i32 %ext1, %ext2 | 186 %cond = icmp ult i32 %ext1, %ext2 |
187 br i1 %cond, label %loop, label %exit | 187 br i1 %cond, label %loop, label %exit |
188 exit: | 188 exit: |