| # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py |
| # RUN: llvm-mca -mtriple=armv8 -mcpu=cortex-a57 -instruction-tables < %s | FileCheck %s |
| |
| .text |
| pld [pc, #8] |
| pldw [pc, #-128] |
| pldw [pc, r0, lsl #2] |
| pldw [pc, r0, lsl #4] |
| pldw [pc, -r0] |
| ldr r5, [r7] |
| ldr r6, [r3, #63] |
| ldr r2, [r4, #4095]! |
| ldr r1, [r2], #30 |
| ldr r3, [r1], #-30 |
| ldr r3, [r8, r1] |
| ldr r3, [r8, r1, lsl #2] |
| ldr r3, [r8, r1, asr #2] |
| ldr r2, [r5, -r3] |
| ldr r1, [r5, r9]! |
| ldr r6, [r7, -r8]! |
| ldr r1, [r0, r2, lsr #3]! |
| ldr r5, [r9], r2 |
| ldr r4, [r3], -r6 |
| ldr r3, [r8, -r2, lsl #15] |
| ldr r1, [r5], r3, asr #15 |
| ldrb r3, [r8] |
| ldrb r1, [sp, #63] |
| ldrb r9, [r3, #4095]! |
| ldrb r8, [r1], #22 |
| ldrb r2, [r7], #-19 |
| ldrb r9, [r8, r5] |
| ldrb r1, [r5, -r1] |
| ldrb r3, [r5, r2]! |
| ldrb r3, [r5, r2, lsl #2]! |
| ldrb r3, [r5, r2, asr #2]! |
| ldrb r6, [r9, -r3]! |
| ldrb r2, [r1], r4 |
| ldrb r8, [r4], -r5 |
| ldrb r7, [r12, -r1, lsl #15] |
| ldrb r5, [r2], r9, asr #15 |
| ldrbt r3, [r1], #4 |
| ldrbt r2, [r8], #-8 |
| ldrbt r8, [r7], r6 |
| ldrbt r1, [r2], -r6, lsl #12 |
| ldrd r0, r1, [r5] |
| ldrd r0, r1, [r5, r2] |
| ldrd r0, r1, [r5, -r2] |
| ldrd r8, r9, [r2, #15] |
| ldrd r2, r3, [r9, #32]! |
| ldrd r6, r7, [r1], #8 |
| ldrd r2, r3, [r8], #0 |
| ldrd r2, r3, [r8], #0 |
| ldrd r2, r3, [r8], #-0 |
| ldrd r4, r5, [r1, r3] |
| ldrd r4, r5, [r7, r2]! |
| ldrd r0, r1, [r8], r12 |
| ldrd r0, r1, [r8], -r12 |
| ldrh r3, [r4] |
| ldrh r2, [r7, #4] |
| ldrh r1, [r8, #64]! |
| ldrh r12, [sp], #4 |
| ldrh r6, [r5, r4] |
| ldrh r6, [r5, -r4] |
| ldrh r3, [r8, r11]! |
| ldrh r1, [r2, -r1]! |
| ldrh r9, [r7], r2 |
| ldrh r4, [r3], -r2 |
| ldrht r9, [r7], #128 |
| ldrht r4, [r3], #-75 |
| ldrht r9, [r7], r2 |
| ldrht r4, [r3], -r2 |
| ldrsb r3, [r4] |
| ldrsb r2, [r7, #17] |
| ldrsb r1, [r8, #255]! |
| ldrsb r12, [sp], #9 |
| ldrsb r6, [r5, r4] |
| ldrsb r3, [r8, r11]! |
| ldrsb r1, [r2, -r1]! |
| ldrsb r9, [r7], r2 |
| ldrsb r4, [r3], -r2 |
| ldrsbt r5, [r6], #1 |
| ldrsbt r3, [r8], #-12 |
| ldrsbt r8, [r9], r5 |
| ldrsbt r2, [r1], -r4 |
| ldrsh r5, [r9] |
| ldrsh r4, [r5, #7] |
| ldrsh r3, [r6, #55]! |
| ldrsh r2, [r7], #-9 |
| ldrsh r3, [r1, r5] |
| ldrsh r4, [r6, r1]! |
| ldrsh r5, [r3, -r6]! |
| ldrsh r6, [r9], r8 |
| ldrsh r7, [r8], -r3 |
| ldrsht r5, [r6], #1 |
| ldrsht r3, [r8], #-12 |
| ldrsht r8, [r9], r5 |
| ldrsht r2, [r1], -r4 |
| ldm r2, {r1, r2, r4, r5, r6} |
| ldmia r2, {r1, r2, r4, r5, r6} |
| ldmia r2, {r1, r3, r4, r5, r6} |
| ldmib r2, {r1, r2} |
| ldmdb r2, {r1, r2} |
| ldmib r2, {r1, r3} |
| ldmib r2, {r1, r3, r5} |
| ldmib r2, {r1, r2, r5} |
| ldmdbeq r2, {r1, r2} |
| ldmibeq r2, {r1, r3} |
| ldmia r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15} |
| ldmia r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15} |
| str r8, [r12] |
| str r7, [r1, #12] |
| str r3, [r5, #40]! |
| str r9, [sp], #4095 |
| str r1, [r7], #-128 |
| str r9, [r6, r3] |
| str r8, [r0, -r2] |
| str r7, [r1, r6]! |
| str r7, [r1, r6, lsl #2]! |
| str r6, [sp, -r1]! |
| str r5, [r3], r9 |
| str r4, [r2], -r5 |
| str r3, [r4, -r2, lsl #2] |
| str r2, [r7], r3, asr #24 |
| strb r9, [r2] |
| strb r7, [r1, #3] |
| strb r6, [r4, #405]! |
| strb r5, [r7], #72 |
| strb r1, [sp], #-1 |
| strb r1, [r2, r9] |
| strb r2, [r3, -r8] |
| strb r3, [r4, r7]! |
| strb r4, [r5, -r6]! |
| strb r5, [r6], r5 |
| strb r6, [r2], -r4 |
| strb r7, [r12, -r3, lsl #5] |
| strb sp, [r7], r2, asr #12 |
| strbt r6, [r2], #12 |
| strbt r5, [r6], #-13 |
| strbt r4, [r9], r5 |
| strbt r3, [r8], -r2, lsl #3 |
| strd r0, r1, [r4] |
| strd r2, r3, [r6, #1] |
| strd r2, r3, [r6, r2] |
| strd r2, r3, [r6, -r2] |
| strd r2, r3, [r7, #22]! |
| strd r4, r5, [r8], #7 |
| strd r4, r5, [sp], #0 |
| strd r6, r7, [lr], #0 |
| strd r6, r7, [r9], #-0 |
| strd r8, r9, [r4, r1] |
| strd r6, r7, [r3, r9]! |
| strd r6, r7, [r5], r8 |
| strd r4, r5, [r12], -r10 |
| strh r3, [r4] |
| strh r2, [r7, #4] |
| strh r1, [r8, #64]! |
| strh r12, [sp], #4 |
| strh r6, [r5, r4] |
| strh r3, [r8, r11]! |
| strh r1, [r2, -r1]! |
| strh r9, [r7], r2 |
| strh r4, [r3], -r2 |
| strht r2, [r5], #76 |
| strht r8, [r1], #-25 |
| strht r5, [r3], r4 |
| strht r6, [r8], -r0 |
| |
| # CHECK: Instruction Info: |
| # CHECK-NEXT: [1]: #uOps |
| # CHECK-NEXT: [2]: Latency |
| # CHECK-NEXT: [3]: RThroughput |
| # CHECK-NEXT: [4]: MayLoad |
| # CHECK-NEXT: [5]: MayStore |
| # CHECK-NEXT: [6]: HasSideEffects (U) |
| |
| # CHECK: [1] [2] [3] [4] [5] [6] Instructions: |
| # CHECK-NEXT: 1 4 1.00 * * pld [pc, #8] |
| # CHECK-NEXT: 1 4 1.00 * * pldw [pc, #-128] |
| # CHECK-NEXT: 1 4 1.00 * * pldw [pc, r0, lsl #2] |
| # CHECK-NEXT: 2 5 1.00 * * pldw [pc, r0, lsl #4] |
| # CHECK-NEXT: 2 5 1.00 * * pldw [pc, -r0] |
| # CHECK-NEXT: 1 4 1.00 * ldr r5, [r7] |
| # CHECK-NEXT: 1 4 1.00 * ldr r6, [r3, #63] |
| # CHECK-NEXT: 2 4 1.00 * ldr r2, [r4, #4095]! |
| # CHECK-NEXT: 2 4 1.00 * ldr r1, [r2], #30 |
| # CHECK-NEXT: 2 4 1.00 * ldr r3, [r1], #-30 |
| # CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1] |
| # CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1, lsl #2] |
| # CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, r1, asr #2] |
| # CHECK-NEXT: 2 5 1.00 * ldr r2, [r5, -r3] |
| # CHECK-NEXT: 2 4 1.00 * ldr r1, [r5, r9]! |
| # CHECK-NEXT: 2 4 1.00 * ldr r6, [r7, -r8]! |
| # CHECK-NEXT: 2 5 1.00 * ldr r1, [r0, r2, lsr #3]! |
| # CHECK-NEXT: 2 4 1.00 * ldr r5, [r9], r2 |
| # CHECK-NEXT: 2 4 1.00 * ldr r4, [r3], -r6 |
| # CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, -r2, lsl #15] |
| # CHECK-NEXT: 2 4 1.00 * ldr r1, [r5], r3, asr #15 |
| # CHECK-NEXT: 1 4 1.00 * ldrb r3, [r8] |
| # CHECK-NEXT: 1 4 1.00 * ldrb r1, [sp, #63] |
| # CHECK-NEXT: 2 4 1.00 * ldrb r9, [r3, #4095]! |
| # CHECK-NEXT: 2 4 1.00 * ldrb r8, [r1], #22 |
| # CHECK-NEXT: 2 4 1.00 * ldrb r2, [r7], #-19 |
| # CHECK-NEXT: 1 4 1.00 * ldrb r9, [r8, r5] |
| # CHECK-NEXT: 2 5 1.00 * ldrb r1, [r5, -r1] |
| # CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2]! |
| # CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2, lsl #2]! |
| # CHECK-NEXT: 2 5 1.00 * ldrb r3, [r5, r2, asr #2]! |
| # CHECK-NEXT: 2 4 1.00 * ldrb r6, [r9, -r3]! |
| # CHECK-NEXT: 2 4 1.00 * ldrb r2, [r1], r4 |
| # CHECK-NEXT: 2 4 1.00 * ldrb r8, [r4], -r5 |
| # CHECK-NEXT: 2 5 1.00 * ldrb r7, [r12, -r1, lsl #15] |
| # CHECK-NEXT: 2 4 1.00 * ldrb r5, [r2], r9, asr #15 |
| # CHECK-NEXT: 2 4 1.00 * ldrbt r3, [r1], #4 |
| # CHECK-NEXT: 2 4 1.00 * ldrbt r2, [r8], #-8 |
| # CHECK-NEXT: 2 4 1.00 * ldrbt r8, [r7], r6 |
| # CHECK-NEXT: 3 4 1.00 * ldrbt r1, [r2], -r6, lsl #12 |
| # CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5] |
| # CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5, r2] |
| # CHECK-NEXT: 4 5 2.00 * ldrd r0, r1, [r5, -r2] |
| # CHECK-NEXT: 2 4 2.00 * ldrd r8, r9, [r2, #15] |
| # CHECK-NEXT: 4 5 2.00 * ldrd r2, r3, [r9, #32]! |
| # CHECK-NEXT: 4 4 2.00 * ldrd r6, r7, [r1], #8 |
| # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0 |
| # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0 |
| # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #-0 |
| # CHECK-NEXT: 2 4 2.00 * ldrd r4, r5, [r1, r3] |
| # CHECK-NEXT: 4 4 2.00 * ldrd r4, r5, [r7, r2]! |
| # CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], r12 |
| # CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], -r12 |
| # CHECK-NEXT: 1 4 1.00 * ldrh r3, [r4] |
| # CHECK-NEXT: 1 4 1.00 * ldrh r2, [r7, #4] |
| # CHECK-NEXT: 1 4 1.00 * ldrh r1, [r8, #64]! |
| # CHECK-NEXT: 2 4 1.00 * ldrh r12, [sp], #4 |
| # CHECK-NEXT: 1 4 1.00 * ldrh r6, [r5, r4] |
| # CHECK-NEXT: 2 5 1.00 * ldrh r6, [r5, -r4] |
| # CHECK-NEXT: 1 4 1.00 * ldrh r3, [r8, r11]! |
| # CHECK-NEXT: 1 4 1.00 * ldrh r1, [r2, -r1]! |
| # CHECK-NEXT: 2 4 1.00 * ldrh r9, [r7], r2 |
| # CHECK-NEXT: 2 4 1.00 * ldrh r4, [r3], -r2 |
| # CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], #128 |
| # CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], #-75 |
| # CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], r2 |
| # CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], -r2 |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r4] |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r2, [r7, #17] |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r8, #255]! |
| # CHECK-NEXT: 2 4 1.00 * ldrsb r12, [sp], #9 |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r6, [r5, r4] |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r8, r11]! |
| # CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r2, -r1]! |
| # CHECK-NEXT: 2 4 1.00 * ldrsb r9, [r7], r2 |
| # CHECK-NEXT: 2 4 1.00 * ldrsb r4, [r3], -r2 |
| # CHECK-NEXT: 2 4 1.00 * ldrsbt r5, [r6], #1 |
| # CHECK-NEXT: 2 4 1.00 * ldrsbt r3, [r8], #-12 |
| # CHECK-NEXT: 2 4 1.00 * ldrsbt r8, [r9], r5 |
| # CHECK-NEXT: 2 4 1.00 * ldrsbt r2, [r1], -r4 |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r9] |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r5, #7] |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r6, #55]! |
| # CHECK-NEXT: 2 4 1.00 * ldrsh r2, [r7], #-9 |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r1, r5] |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r6, r1]! |
| # CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r3, -r6]! |
| # CHECK-NEXT: 2 4 1.00 * ldrsh r6, [r9], r8 |
| # CHECK-NEXT: 2 4 1.00 * ldrsh r7, [r8], -r3 |
| # CHECK-NEXT: 2 4 1.00 * ldrsht r5, [r6], #1 |
| # CHECK-NEXT: 2 4 1.00 * ldrsht r3, [r8], #-12 |
| # CHECK-NEXT: 2 4 1.00 * ldrsht r8, [r9], r5 |
| # CHECK-NEXT: 2 4 1.00 * ldrsht r2, [r1], -r4 |
| # CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6} |
| # CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6} |
| # CHECK-NEXT: 6 5 6.00 * ldm r2, {r1, r3, r4, r5, r6} |
| # CHECK-NEXT: 4 4 2.00 * ldmib r2, {r1, r2} |
| # CHECK-NEXT: 4 4 2.00 * ldmdb r2, {r1, r2} |
| # CHECK-NEXT: 2 3 2.00 * ldmib r2, {r1, r3} |
| # CHECK-NEXT: 4 4 4.00 * ldmib r2, {r1, r3, r5} |
| # CHECK-NEXT: 8 5 4.00 * ldmib r2, {r1, r2, r5} |
| # CHECK-NEXT: 4 4 2.00 * ldmdbeq r2, {r1, r2} |
| # CHECK-NEXT: 2 3 2.00 * ldmibeq r2, {r1, r3} |
| # CHECK-NEXT: 16 10 16.00 * ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} |
| # CHECK-NEXT: 32 11 16.00 * ldm r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} |
| # CHECK-NEXT: 1 1 1.00 * str r8, [r12] |
| # CHECK-NEXT: 1 1 1.00 * str r7, [r1, #12] |
| # CHECK-NEXT: 2 1 1.00 * str r3, [r5, #40]! |
| # CHECK-NEXT: 2 1 1.00 * str r9, [sp], #4095 |
| # CHECK-NEXT: 2 1 1.00 * str r1, [r7], #-128 |
| # CHECK-NEXT: 1 1 1.00 * str r9, [r6, r3] |
| # CHECK-NEXT: 2 3 1.00 * str r8, [r0, -r2] |
| # CHECK-NEXT: 2 1 1.00 * str r7, [r1, r6]! |
| # CHECK-NEXT: 2 2 1.00 * str r7, [r1, r6, lsl #2]! |
| # CHECK-NEXT: 2 3 1.00 * str r6, [sp, -r1]! |
| # CHECK-NEXT: 2 2 1.00 * str r5, [r3], r9 |
| # CHECK-NEXT: 2 2 1.00 * str r4, [r2], -r5 |
| # CHECK-NEXT: 2 3 1.00 * str r3, [r4, -r2, lsl #2] |
| # CHECK-NEXT: 2 2 1.00 * str r2, [r7], r3, asr #24 |
| # CHECK-NEXT: 1 1 1.00 * strb r9, [r2] |
| # CHECK-NEXT: 1 1 1.00 * strb r7, [r1, #3] |
| # CHECK-NEXT: 2 1 1.00 * strb r6, [r4, #405]! |
| # CHECK-NEXT: 2 1 1.00 * strb r5, [r7], #72 |
| # CHECK-NEXT: 2 1 1.00 * strb r1, [sp], #-1 |
| # CHECK-NEXT: 1 1 1.00 * strb r1, [r2, r9] |
| # CHECK-NEXT: 2 3 1.00 * strb r2, [r3, -r8] |
| # CHECK-NEXT: 2 1 1.00 * strb r3, [r4, r7]! |
| # CHECK-NEXT: 2 3 1.00 * strb r4, [r5, -r6]! |
| # CHECK-NEXT: 2 2 1.00 * strb r5, [r6], r5 |
| # CHECK-NEXT: 2 2 1.00 * strb r6, [r2], -r4 |
| # CHECK-NEXT: 2 3 1.00 * strb r7, [r12, -r3, lsl #5] |
| # CHECK-NEXT: 2 2 1.00 * strb sp, [r7], r2, asr #12 |
| # CHECK-NEXT: 2 1 1.00 U strbt r6, [r2], #12 |
| # CHECK-NEXT: 2 1 1.00 U strbt r5, [r6], #-13 |
| # CHECK-NEXT: 2 2 1.00 U strbt r4, [r9], r5 |
| # CHECK-NEXT: 2 2 1.00 U strbt r3, [r8], -r2, lsl #3 |
| # CHECK-NEXT: 1 1 1.00 * strd r0, r1, [r4] |
| # CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, #1] |
| # CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, r2] |
| # CHECK-NEXT: 2 3 1.00 * strd r2, r3, [r6, -r2] |
| # CHECK-NEXT: 2 1 1.00 * strd r2, r3, [r7, #22]! |
| # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r8], #7 |
| # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [sp], #0 |
| # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [lr], #0 |
| # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r9], #-0 |
| # CHECK-NEXT: 1 1 1.00 * strd r8, r9, [r4, r1] |
| # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r3, r9]! |
| # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r5], r8 |
| # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r12], -r10 |
| # CHECK-NEXT: 1 1 1.00 * strh r3, [r4] |
| # CHECK-NEXT: 1 1 1.00 * strh r2, [r7, #4] |
| # CHECK-NEXT: 2 1 1.00 U strh r1, [r8, #64]! |
| # CHECK-NEXT: 2 1 1.00 * strh r12, [sp], #4 |
| # CHECK-NEXT: 1 1 1.00 * strh r6, [r5, r4] |
| # CHECK-NEXT: 2 1 1.00 U strh r3, [r8, r11]! |
| # CHECK-NEXT: 2 1 1.00 U strh r1, [r2, -r1]! |
| # CHECK-NEXT: 2 1 1.00 * strh r9, [r7], r2 |
| # CHECK-NEXT: 2 1 1.00 * strh r4, [r3], -r2 |
| # CHECK-NEXT: 2 1 1.00 U strht r2, [r5], #76 |
| # CHECK-NEXT: 2 1 1.00 U strht r8, [r1], #-25 |
| # CHECK-NEXT: 2 1 1.00 U strht r5, [r3], r4 |
| # CHECK-NEXT: 2 1 1.00 U strht r6, [r8], -r0 |
| |
| # CHECK: Resources: |
| # CHECK-NEXT: [0] - A57UnitB |
| # CHECK-NEXT: [1.0] - A57UnitI |
| # CHECK-NEXT: [1.1] - A57UnitI |
| # CHECK-NEXT: [2] - A57UnitL |
| # CHECK-NEXT: [3] - A57UnitM |
| # CHECK-NEXT: [4] - A57UnitS |
| # CHECK-NEXT: [5] - A57UnitW |
| # CHECK-NEXT: [6] - A57UnitX |
| |
| # CHECK: Resource pressure per iteration: |
| # CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6] |
| # CHECK-NEXT: - 71.50 71.50 174.00 10.00 57.00 - - |
| |
| # CHECK: Resource pressure by instruction: |
| # CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6] Instructions: |
| # CHECK-NEXT: - - - 1.00 - - - - pld [pc, #8] |
| # CHECK-NEXT: - - - 1.00 - - - - pldw [pc, #-128] |
| # CHECK-NEXT: - - - 1.00 - - - - pldw [pc, r0, lsl #2] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, r0, lsl #4] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, -r0] |
| # CHECK-NEXT: - - - 1.00 - - - - ldr r5, [r7] |
| # CHECK-NEXT: - - - 1.00 - - - - ldr r6, [r3, #63] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r4, #4095]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r2], #30 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r1], #-30 |
| # CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1] |
| # CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1, lsl #2] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, r1, asr #2] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r5, -r3] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5, r9]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r6, [r7, -r8]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r0, r2, lsr #3]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r5, [r9], r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r4, [r3], -r6 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, -r2, lsl #15] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5], r3, asr #15 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrb r3, [r8] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrb r1, [sp, #63] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r9, [r3, #4095]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r1], #22 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r7], #-19 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrb r9, [r8, r5] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r1, [r5, -r1] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, lsl #2]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, asr #2]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r6, [r9, -r3]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r1], r4 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r4], -r5 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r7, [r12, -r1, lsl #15] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r5, [r2], r9, asr #15 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r3, [r1], #4 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r2, [r8], #-8 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r8, [r7], r6 |
| # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - ldrbt r1, [r2], -r6, lsl #12 |
| # CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5] |
| # CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5, r2] |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r5, -r2] |
| # CHECK-NEXT: - - - 2.00 - - - - ldrd r8, r9, [r2, #15] |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r9, #32]! |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r6, r7, [r1], #8 |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0 |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0 |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #-0 |
| # CHECK-NEXT: - - - 2.00 - - - - ldrd r4, r5, [r1, r3] |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r4, r5, [r7, r2]! |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], r12 |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], -r12 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r4] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r2, [r7, #4] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r8, #64]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r12, [sp], #4 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r6, [r5, r4] |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r6, [r5, -r4] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r8, r11]! |
| # CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r2, -r1]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r9, [r7], r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r4, [r3], -r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], #128 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], #-75 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], -r2 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r4] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r2, [r7, #17] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r8, #255]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r12, [sp], #9 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r6, [r5, r4] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r8, r11]! |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r2, -r1]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r9, [r7], r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r4, [r3], -r2 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r5, [r6], #1 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r3, [r8], #-12 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r8, [r9], r5 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r2, [r1], -r4 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r9] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r5, #7] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r6, #55]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r2, [r7], #-9 |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r1, r5] |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r6, r1]! |
| # CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r3, -r6]! |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r6, [r9], r8 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r7, [r8], -r3 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r5, [r6], #1 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r3, [r8], #-12 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r8, [r9], r5 |
| # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r2, [r1], -r4 |
| # CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6} |
| # CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6} |
| # CHECK-NEXT: - - - 6.00 - - - - ldm r2, {r1, r3, r4, r5, r6} |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmib r2, {r1, r2} |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdb r2, {r1, r2} |
| # CHECK-NEXT: - - - 2.00 - - - - ldmib r2, {r1, r3} |
| # CHECK-NEXT: - - - 4.00 - - - - ldmib r2, {r1, r3, r5} |
| # CHECK-NEXT: - 2.00 2.00 4.00 - - - - ldmib r2, {r1, r2, r5} |
| # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdbeq r2, {r1, r2} |
| # CHECK-NEXT: - - - 2.00 - - - - ldmibeq r2, {r1, r3} |
| # CHECK-NEXT: - - - 16.00 - - - - ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} |
| # CHECK-NEXT: - 8.00 8.00 16.00 - - - - ldm r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} |
| # CHECK-NEXT: - - - - - 1.00 - - str r8, [r12] |
| # CHECK-NEXT: - - - - - 1.00 - - str r7, [r1, #12] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r5, #40]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r9, [sp], #4095 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r1, [r7], #-128 |
| # CHECK-NEXT: - - - - - 1.00 - - str r9, [r6, r3] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r8, [r0, -r2] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r7, [r1, r6]! |
| # CHECK-NEXT: - - - - 1.00 1.00 - - str r7, [r1, r6, lsl #2]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r6, [sp, -r1]! |
| # CHECK-NEXT: - - - - 1.00 1.00 - - str r5, [r3], r9 |
| # CHECK-NEXT: - - - - 1.00 1.00 - - str r4, [r2], -r5 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r4, -r2, lsl #2] |
| # CHECK-NEXT: - - - - 1.00 1.00 - - str r2, [r7], r3, asr #24 |
| # CHECK-NEXT: - - - - - 1.00 - - strb r9, [r2] |
| # CHECK-NEXT: - - - - - 1.00 - - strb r7, [r1, #3] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r6, [r4, #405]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r5, [r7], #72 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r1, [sp], #-1 |
| # CHECK-NEXT: - - - - - 1.00 - - strb r1, [r2, r9] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r2, [r3, -r8] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r3, [r4, r7]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r4, [r5, -r6]! |
| # CHECK-NEXT: - - - - 1.00 1.00 - - strb r5, [r6], r5 |
| # CHECK-NEXT: - - - - 1.00 1.00 - - strb r6, [r2], -r4 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r7, [r12, -r3, lsl #5] |
| # CHECK-NEXT: - - - - 1.00 1.00 - - strb sp, [r7], r2, asr #12 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r6, [r2], #12 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r5, [r6], #-13 |
| # CHECK-NEXT: - - - - 1.00 1.00 - - strbt r4, [r9], r5 |
| # CHECK-NEXT: - - - - 1.00 1.00 - - strbt r3, [r8], -r2, lsl #3 |
| # CHECK-NEXT: - - - - - 1.00 - - strd r0, r1, [r4] |
| # CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, #1] |
| # CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, r2] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r6, -r2] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r7, #22]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r8], #7 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [sp], #0 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [lr], #0 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r9], #-0 |
| # CHECK-NEXT: - - - - - 1.00 - - strd r8, r9, [r4, r1] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r3, r9]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r5], r8 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r12], -r10 |
| # CHECK-NEXT: - - - - - 1.00 - - strh r3, [r4] |
| # CHECK-NEXT: - - - - - 1.00 - - strh r2, [r7, #4] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r8, #64]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r12, [sp], #4 |
| # CHECK-NEXT: - - - - - 1.00 - - strh r6, [r5, r4] |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r3, [r8, r11]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r2, -r1]! |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r9, [r7], r2 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r4, [r3], -r2 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r2, [r5], #76 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r8, [r1], #-25 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r5, [r3], r4 |
| # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r6, [r8], -r0 |