|
1 | 1 | ; REQUIRES: asserts
|
2 |
| -; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=cortex-a57 -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s |
| 2 | +; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=cortex-a57 -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s --check-prefixes=CHECK,CHECK-A57 |
3 | 3 | ; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=exynos-m3 -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s
|
4 | 4 |
|
5 | 5 | ; Test ldr clustering.
|
@@ -227,3 +227,73 @@ entry:
|
227 | 227 | store i64 %r53, ptr %wb
|
228 | 228 | ret void
|
229 | 229 | }
|
| 230 | + |
| 231 | +; CHECK: ********** MI Scheduling ********** |
| 232 | +; CHECK: STURWi_STRWui:%bb.0 entry |
| 233 | +; CHECK: Cluster ld/st SU(3) - SU(4) |
| 234 | +; CHECK: SU(3): STURWi %{{[0-9]+}}:gpr32 |
| 235 | +; CHECK: SU(4): STRWui %{{[0-9]+}}:gpr32 |
| 236 | +; |
| 237 | +define void @STURWi_STRWui(ptr nocapture readonly %arg, i32 %b, i32 %c) { |
| 238 | +entry: |
| 239 | + %r51 = getelementptr i8, ptr %arg, i64 -4 |
| 240 | + store i32 %b, ptr %r51 |
| 241 | + store i32 %c, ptr %arg |
| 242 | + ret void |
| 243 | +} |
| 244 | + |
| 245 | +; CHECK: ********** MI Scheduling ********** |
| 246 | +; CHECK: STURXi_STRXui:%bb.0 entry |
| 247 | +; CHECK: Cluster ld/st SU(3) - SU(4) |
| 248 | +; CHECK: SU(3): STURXi %{{[0-9]+}}:gpr64 |
| 249 | +; CHECK: SU(4): STRXui %{{[0-9]+}}:gpr64 |
| 250 | +; |
| 251 | +define void @STURXi_STRXui(ptr nocapture readonly %arg, i64 %b, i64 %c) { |
| 252 | +entry: |
| 253 | + %r51 = getelementptr i8, ptr %arg, i64 -8 |
| 254 | + store i64 %b, ptr %r51 |
| 255 | + store i64 %c, ptr %arg |
| 256 | + ret void |
| 257 | +} |
| 258 | + |
| 259 | +; CHECK-A57: ********** MI Scheduling ********** |
| 260 | +; CHECK-A57: STURSi_STRSui:%bb.0 entry |
| 261 | +; CHECK-A57: Cluster ld/st SU(3) - SU(4) |
| 262 | +; CHECK-A57: SU(3): STURSi %{{[0-9]+}}:fpr32 |
| 263 | +; CHECK-A57: SU(4): STRSui %{{[0-9]+}}:fpr32 |
| 264 | +; |
| 265 | +define void @STURSi_STRSui(ptr nocapture readonly %arg, float %b, float %c) { |
| 266 | +entry: |
| 267 | + %r51 = getelementptr i8, ptr %arg, i64 -4 |
| 268 | + store float %b, ptr %r51 |
| 269 | + store float %c, ptr %arg |
| 270 | + ret void |
| 271 | +} |
| 272 | + |
| 273 | +; CHECK-A57: ********** MI Scheduling ********** |
| 274 | +; CHECK-A57: STURDi_STRDui:%bb.0 entry |
| 275 | +; CHECK-A57: Cluster ld/st SU(3) - SU(4) |
| 276 | +; CHECK-A57: SU(3): STURDi %{{[0-9]+}}:fpr64 |
| 277 | +; CHECK-A57: SU(4): STRDui %{{[0-9]+}}:fpr64 |
| 278 | +; |
| 279 | +define void @STURDi_STRDui(ptr nocapture readonly %arg, <2 x float> %b, <2 x float> %c) { |
| 280 | +entry: |
| 281 | + %r51 = getelementptr i8, ptr %arg, i64 -8 |
| 282 | + store <2 x float> %b, ptr %r51 |
| 283 | + store <2 x float> %c, ptr %arg |
| 284 | + ret void |
| 285 | +} |
| 286 | + |
| 287 | +; CHECK-A57: ********** MI Scheduling ********** |
| 288 | +; CHECK-A57: STURQi_STRQui:%bb.0 entry |
| 289 | +; CHECK-A57: Cluster ld/st SU(3) - SU(4) |
| 290 | +; CHECK-A57: SU(3): STURQi %{{[0-9]+}}:fpr128 |
| 291 | +; CHECK-A57: SU(4): STRQui %{{[0-9]+}}:fpr128 |
| 292 | +; |
| 293 | +define void @STURQi_STRQui(ptr nocapture readonly %arg, <2 x double> %b, <2 x double> %c) { |
| 294 | +entry: |
| 295 | + %r51 = getelementptr i8, ptr %arg, i64 -16 |
| 296 | + store <2 x double> %b, ptr %r51 |
| 297 | + store <2 x double> %c, ptr %arg |
| 298 | + ret void |
| 299 | +} |
0 commit comments