1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=armv8 -mcpu=cortex-a57 -instruction-tables < %s | FileCheck %s 3 4 .text 5 pld [pc, #8] 6 pldw [pc, #-128] 7 pldw [pc, r0, lsl #2] 8 pldw [pc, r0, lsl #4] 9 pldw [pc, -r0] 10 ldr r5, [r7] 11 ldr r6, [r3, #63] 12 ldr r2, [r4, #4095]! 13 ldr r1, [r2], #30 14 ldr r3, [r1], #-30 15 ldr r3, [r8, r1] 16 ldr r3, [r8, r1, lsl #2] 17 ldr r3, [r8, r1, asr #2] 18 ldr r2, [r5, -r3] 19 ldr r1, [r5, r9]! 20 ldr r6, [r7, -r8]! 21 ldr r1, [r0, r2, lsr #3]! 22 ldr r5, [r9], r2 23 ldr r4, [r3], -r6 24 ldr r3, [r8, -r2, lsl #15] 25 ldr r1, [r5], r3, asr #15 26 ldrb r3, [r8] 27 ldrb r1, [sp, #63] 28 ldrb r9, [r3, #4095]! 29 ldrb r8, [r1], #22 30 ldrb r2, [r7], #-19 31 ldrb r9, [r8, r5] 32 ldrb r1, [r5, -r1] 33 ldrb r3, [r5, r2]! 34 ldrb r3, [r5, r2, lsl #2]! 35 ldrb r3, [r5, r2, asr #2]! 36 ldrb r6, [r9, -r3]! 37 ldrb r2, [r1], r4 38 ldrb r8, [r4], -r5 39 ldrb r7, [r12, -r1, lsl #15] 40 ldrb r5, [r2], r9, asr #15 41 ldrbt r3, [r1], #4 42 ldrbt r2, [r8], #-8 43 ldrbt r8, [r7], r6 44 ldrbt r1, [r2], -r6, lsl #12 45 ldrd r0, r1, [r5] 46 ldrd r0, r1, [r5, r2] 47 ldrd r0, r1, [r5, -r2] 48 ldrd r8, r9, [r2, #15] 49 ldrd r2, r3, [r9, #32]! 50 ldrd r6, r7, [r1], #8 51 ldrd r2, r3, [r8], #0 52 ldrd r2, r3, [r8], #0 53 ldrd r2, r3, [r8], #-0 54 ldrd r4, r5, [r1, r3] 55 ldrd r4, r5, [r7, r2]! 56 ldrd r0, r1, [r8], r12 57 ldrd r0, r1, [r8], -r12 58 ldrh r3, [r4] 59 ldrh r2, [r7, #4] 60 ldrh r1, [r8, #64]! 61 ldrh r12, [sp], #4 62 ldrh r6, [r5, r4] 63 ldrh r6, [r5, -r4] 64 ldrh r3, [r8, r11]! 65 ldrh r1, [r2, -r1]! 66 ldrh r9, [r7], r2 67 ldrh r4, [r3], -r2 68 ldrht r9, [r7], #128 69 ldrht r4, [r3], #-75 70 ldrht r9, [r7], r2 71 ldrht r4, [r3], -r2 72 ldrsb r3, [r4] 73 ldrsb r2, [r7, #17] 74 ldrsb r1, [r8, #255]! 75 ldrsb r12, [sp], #9 76 ldrsb r6, [r5, r4] 77 ldrsb r3, [r8, r11]! 78 ldrsb r1, [r2, -r1]! 79 ldrsb r9, [r7], r2 80 ldrsb r4, [r3], -r2 81 ldrsbt r5, [r6], #1 82 ldrsbt r3, [r8], #-12 83 ldrsbt r8, [r9], r5 84 ldrsbt r2, [r1], -r4 85 ldrsh r5, [r9] 86 ldrsh r4, [r5, #7] 87 ldrsh r3, [r6, #55]! 88 ldrsh r2, [r7], #-9 89 ldrsh r3, [r1, r5] 90 ldrsh r4, [r6, r1]! 91 ldrsh r5, [r3, -r6]! 92 ldrsh r6, [r9], r8 93 ldrsh r7, [r8], -r3 94 ldrsht r5, [r6], #1 95 ldrsht r3, [r8], #-12 96 ldrsht r8, [r9], r5 97 ldrsht r2, [r1], -r4 98 ldm r2, {r1, r2, r4, r5, r6} 99 ldmia r2, {r1, r2, r4, r5, r6} 100 ldmia r2, {r1, r3, r4, r5, r6} 101 ldmib r2, {r1, r2} 102 ldmdb r2, {r1, r2} 103 ldmib r2, {r1, r3} 104 ldmib r2, {r1, r3, r5} 105 ldmib r2, {r1, r2, r5} 106 ldmdbeq r2, {r1, r2} 107 ldmibeq r2, {r1, r3} 108 ldmia r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15} 109 ldmia r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15} 110 str r8, [r12] 111 str r7, [r1, #12] 112 str r3, [r5, #40]! 113 str r9, [sp], #4095 114 str r1, [r7], #-128 115 str r9, [r6, r3] 116 str r8, [r0, -r2] 117 str r7, [r1, r6]! 118 str r7, [r1, r6, lsl #2]! 119 str r6, [sp, -r1]! 120 str r5, [r3], r9 121 str r4, [r2], -r5 122 str r3, [r4, -r2, lsl #2] 123 str r2, [r7], r3, asr #24 124 strb r9, [r2] 125 strb r7, [r1, #3] 126 strb r6, [r4, #405]! 127 strb r5, [r7], #72 128 strb r1, [sp], #-1 129 strb r1, [r2, r9] 130 strb r2, [r3, -r8] 131 strb r3, [r4, r7]! 132 strb r4, [r5, -r6]! 133 strb r5, [r6], r5 134 strb r6, [r2], -r4 135 strb r7, [r12, -r3, lsl #5] 136 strb sp, [r7], r2, asr #12 137 strbt r6, [r2], #12 138 strbt r5, [r6], #-13 139 strbt r4, [r9], r5 140 strbt r3, [r8], -r2, lsl #3 141 strd r0, r1, [r4] 142 strd r2, r3, [r6, #1] 143 strd r2, r3, [r6, r2] 144 strd r2, r3, [r6, -r2] 145 strd r2, r3, [r7, #22]! 146 strd r4, r5, [r8], #7 147 strd r4, r5, [sp], #0 148 strd r6, r7, [lr], #0 149 strd r6, r7, [r9], #-0 150 strd r8, r9, [r4, r1] 151 strd r6, r7, [r3, r9]! 152 strd r6, r7, [r5], r8 153 strd r4, r5, [r12], -r10 154 strh r3, [r4] 155 strh r2, [r7, #4] 156 strh r1, [r8, #64]! 157 strh r12, [sp], #4 158 strh r6, [r5, r4] 159 strh r3, [r8, r11]! 160 strh r1, [r2, -r1]! 161 strh r9, [r7], r2 162 strh r4, [r3], -r2 163 strht r2, [r5], #76 164 strht r8, [r1], #-25 165 strht r5, [r3], r4 166 strht r6, [r8], -r0 167 168# CHECK: Instruction Info: 169# CHECK-NEXT: [1]: #uOps 170# CHECK-NEXT: [2]: Latency 171# CHECK-NEXT: [3]: RThroughput 172# CHECK-NEXT: [4]: MayLoad 173# CHECK-NEXT: [5]: MayStore 174# CHECK-NEXT: [6]: HasSideEffects (U) 175 176# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 177# CHECK-NEXT: 1 4 1.00 * * pld [pc, #8] 178# CHECK-NEXT: 1 4 1.00 * * pldw [pc, #-128] 179# CHECK-NEXT: 1 4 1.00 * * pldw [pc, r0, lsl #2] 180# CHECK-NEXT: 2 5 1.00 * * pldw [pc, r0, lsl #4] 181# CHECK-NEXT: 2 5 1.00 * * pldw [pc, -r0] 182# CHECK-NEXT: 1 4 1.00 * ldr r5, [r7] 183# CHECK-NEXT: 1 4 1.00 * ldr r6, [r3, #63] 184# CHECK-NEXT: 2 4 1.00 * ldr r2, [r4, #4095]! 185# CHECK-NEXT: 2 4 1.00 * ldr r1, [r2], #30 186# CHECK-NEXT: 2 4 1.00 * ldr r3, [r1], #-30 187# CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1] 188# CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1, lsl #2] 189# CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, r1, asr #2] 190# CHECK-NEXT: 2 5 1.00 * ldr r2, [r5, -r3] 191# CHECK-NEXT: 2 4 1.00 * ldr r1, [r5, r9]! 192# CHECK-NEXT: 2 4 1.00 * ldr r6, [r7, -r8]! 193# CHECK-NEXT: 2 5 1.00 * ldr r1, [r0, r2, lsr #3]! 194# CHECK-NEXT: 2 4 1.00 * ldr r5, [r9], r2 195# CHECK-NEXT: 2 4 1.00 * ldr r4, [r3], -r6 196# CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, -r2, lsl #15] 197# CHECK-NEXT: 2 4 1.00 * ldr r1, [r5], r3, asr #15 198# CHECK-NEXT: 1 4 1.00 * ldrb r3, [r8] 199# CHECK-NEXT: 1 4 1.00 * ldrb r1, [sp, #63] 200# CHECK-NEXT: 2 4 1.00 * ldrb r9, [r3, #4095]! 201# CHECK-NEXT: 2 4 1.00 * ldrb r8, [r1], #22 202# CHECK-NEXT: 2 4 1.00 * ldrb r2, [r7], #-19 203# CHECK-NEXT: 1 4 1.00 * ldrb r9, [r8, r5] 204# CHECK-NEXT: 2 5 1.00 * ldrb r1, [r5, -r1] 205# CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2]! 206# CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2, lsl #2]! 207# CHECK-NEXT: 2 5 1.00 * ldrb r3, [r5, r2, asr #2]! 208# CHECK-NEXT: 2 4 1.00 * ldrb r6, [r9, -r3]! 209# CHECK-NEXT: 2 4 1.00 * ldrb r2, [r1], r4 210# CHECK-NEXT: 2 4 1.00 * ldrb r8, [r4], -r5 211# CHECK-NEXT: 2 5 1.00 * ldrb r7, [r12, -r1, lsl #15] 212# CHECK-NEXT: 2 4 1.00 * ldrb r5, [r2], r9, asr #15 213# CHECK-NEXT: 2 4 1.00 * ldrbt r3, [r1], #4 214# CHECK-NEXT: 2 4 1.00 * ldrbt r2, [r8], #-8 215# CHECK-NEXT: 2 4 1.00 * ldrbt r8, [r7], r6 216# CHECK-NEXT: 3 4 1.00 * ldrbt r1, [r2], -r6, lsl #12 217# CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5] 218# CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5, r2] 219# CHECK-NEXT: 4 5 2.00 * ldrd r0, r1, [r5, -r2] 220# CHECK-NEXT: 2 4 2.00 * ldrd r8, r9, [r2, #15] 221# CHECK-NEXT: 4 5 2.00 * ldrd r2, r3, [r9, #32]! 222# CHECK-NEXT: 4 4 2.00 * ldrd r6, r7, [r1], #8 223# CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0 224# CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0 225# CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #-0 226# CHECK-NEXT: 2 4 2.00 * ldrd r4, r5, [r1, r3] 227# CHECK-NEXT: 4 4 2.00 * ldrd r4, r5, [r7, r2]! 228# CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], r12 229# CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], -r12 230# CHECK-NEXT: 1 4 1.00 * ldrh r3, [r4] 231# CHECK-NEXT: 1 4 1.00 * ldrh r2, [r7, #4] 232# CHECK-NEXT: 1 4 1.00 * ldrh r1, [r8, #64]! 233# CHECK-NEXT: 2 4 1.00 * ldrh r12, [sp], #4 234# CHECK-NEXT: 1 4 1.00 * ldrh r6, [r5, r4] 235# CHECK-NEXT: 2 5 1.00 * ldrh r6, [r5, -r4] 236# CHECK-NEXT: 1 4 1.00 * ldrh r3, [r8, r11]! 237# CHECK-NEXT: 1 4 1.00 * ldrh r1, [r2, -r1]! 238# CHECK-NEXT: 2 4 1.00 * ldrh r9, [r7], r2 239# CHECK-NEXT: 2 4 1.00 * ldrh r4, [r3], -r2 240# CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], #128 241# CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], #-75 242# CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], r2 243# CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], -r2 244# CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r4] 245# CHECK-NEXT: 1 4 1.00 * ldrsb r2, [r7, #17] 246# CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r8, #255]! 247# CHECK-NEXT: 2 4 1.00 * ldrsb r12, [sp], #9 248# CHECK-NEXT: 1 4 1.00 * ldrsb r6, [r5, r4] 249# CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r8, r11]! 250# CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r2, -r1]! 251# CHECK-NEXT: 2 4 1.00 * ldrsb r9, [r7], r2 252# CHECK-NEXT: 2 4 1.00 * ldrsb r4, [r3], -r2 253# CHECK-NEXT: 2 4 1.00 * ldrsbt r5, [r6], #1 254# CHECK-NEXT: 2 4 1.00 * ldrsbt r3, [r8], #-12 255# CHECK-NEXT: 2 4 1.00 * ldrsbt r8, [r9], r5 256# CHECK-NEXT: 2 4 1.00 * ldrsbt r2, [r1], -r4 257# CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r9] 258# CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r5, #7] 259# CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r6, #55]! 260# CHECK-NEXT: 2 4 1.00 * ldrsh r2, [r7], #-9 261# CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r1, r5] 262# CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r6, r1]! 263# CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r3, -r6]! 264# CHECK-NEXT: 2 4 1.00 * ldrsh r6, [r9], r8 265# CHECK-NEXT: 2 4 1.00 * ldrsh r7, [r8], -r3 266# CHECK-NEXT: 2 4 1.00 * ldrsht r5, [r6], #1 267# CHECK-NEXT: 2 4 1.00 * ldrsht r3, [r8], #-12 268# CHECK-NEXT: 2 4 1.00 * ldrsht r8, [r9], r5 269# CHECK-NEXT: 2 4 1.00 * ldrsht r2, [r1], -r4 270# CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6} 271# CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6} 272# CHECK-NEXT: 6 5 6.00 * ldm r2, {r1, r3, r4, r5, r6} 273# CHECK-NEXT: 4 4 2.00 * ldmib r2, {r1, r2} 274# CHECK-NEXT: 4 4 2.00 * ldmdb r2, {r1, r2} 275# CHECK-NEXT: 2 3 2.00 * ldmib r2, {r1, r3} 276# CHECK-NEXT: 4 4 4.00 * ldmib r2, {r1, r3, r5} 277# CHECK-NEXT: 8 5 4.00 * ldmib r2, {r1, r2, r5} 278# CHECK-NEXT: 4 4 2.00 * ldmdbeq r2, {r1, r2} 279# CHECK-NEXT: 2 3 2.00 * ldmibeq r2, {r1, r3} 280# CHECK-NEXT: 16 10 16.00 * ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} 281# CHECK-NEXT: 32 11 16.00 * ldm r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} 282# CHECK-NEXT: 1 1 1.00 * str r8, [r12] 283# CHECK-NEXT: 1 1 1.00 * str r7, [r1, #12] 284# CHECK-NEXT: 2 1 1.00 * str r3, [r5, #40]! 285# CHECK-NEXT: 2 1 1.00 * str r9, [sp], #4095 286# CHECK-NEXT: 2 1 1.00 * str r1, [r7], #-128 287# CHECK-NEXT: 1 1 1.00 * str r9, [r6, r3] 288# CHECK-NEXT: 2 3 1.00 * str r8, [r0, -r2] 289# CHECK-NEXT: 2 1 1.00 * str r7, [r1, r6]! 290# CHECK-NEXT: 2 2 1.00 * str r7, [r1, r6, lsl #2]! 291# CHECK-NEXT: 2 3 1.00 * str r6, [sp, -r1]! 292# CHECK-NEXT: 2 2 1.00 * str r5, [r3], r9 293# CHECK-NEXT: 2 2 1.00 * str r4, [r2], -r5 294# CHECK-NEXT: 2 3 1.00 * str r3, [r4, -r2, lsl #2] 295# CHECK-NEXT: 2 2 1.00 * str r2, [r7], r3, asr #24 296# CHECK-NEXT: 1 1 1.00 * strb r9, [r2] 297# CHECK-NEXT: 1 1 1.00 * strb r7, [r1, #3] 298# CHECK-NEXT: 2 1 1.00 * strb r6, [r4, #405]! 299# CHECK-NEXT: 2 1 1.00 * strb r5, [r7], #72 300# CHECK-NEXT: 2 1 1.00 * strb r1, [sp], #-1 301# CHECK-NEXT: 1 1 1.00 * strb r1, [r2, r9] 302# CHECK-NEXT: 2 3 1.00 * strb r2, [r3, -r8] 303# CHECK-NEXT: 2 1 1.00 * strb r3, [r4, r7]! 304# CHECK-NEXT: 2 3 1.00 * strb r4, [r5, -r6]! 305# CHECK-NEXT: 2 2 1.00 * strb r5, [r6], r5 306# CHECK-NEXT: 2 2 1.00 * strb r6, [r2], -r4 307# CHECK-NEXT: 2 3 1.00 * strb r7, [r12, -r3, lsl #5] 308# CHECK-NEXT: 2 2 1.00 * strb sp, [r7], r2, asr #12 309# CHECK-NEXT: 2 1 1.00 * strbt r6, [r2], #12 310# CHECK-NEXT: 2 1 1.00 * strbt r5, [r6], #-13 311# CHECK-NEXT: 2 2 1.00 * strbt r4, [r9], r5 312# CHECK-NEXT: 2 2 1.00 * strbt r3, [r8], -r2, lsl #3 313# CHECK-NEXT: 1 1 1.00 * strd r0, r1, [r4] 314# CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, #1] 315# CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, r2] 316# CHECK-NEXT: 2 3 1.00 * strd r2, r3, [r6, -r2] 317# CHECK-NEXT: 2 1 1.00 * strd r2, r3, [r7, #22]! 318# CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r8], #7 319# CHECK-NEXT: 2 1 1.00 * strd r4, r5, [sp], #0 320# CHECK-NEXT: 2 1 1.00 * strd r6, r7, [lr], #0 321# CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r9], #-0 322# CHECK-NEXT: 1 1 1.00 * strd r8, r9, [r4, r1] 323# CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r3, r9]! 324# CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r5], r8 325# CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r12], -r10 326# CHECK-NEXT: 1 1 1.00 * strh r3, [r4] 327# CHECK-NEXT: 1 1 1.00 * strh r2, [r7, #4] 328# CHECK-NEXT: 2 1 1.00 * strh r1, [r8, #64]! 329# CHECK-NEXT: 2 1 1.00 * strh r12, [sp], #4 330# CHECK-NEXT: 1 1 1.00 * strh r6, [r5, r4] 331# CHECK-NEXT: 2 1 1.00 * strh r3, [r8, r11]! 332# CHECK-NEXT: 2 1 1.00 * strh r1, [r2, -r1]! 333# CHECK-NEXT: 2 1 1.00 * strh r9, [r7], r2 334# CHECK-NEXT: 2 1 1.00 * strh r4, [r3], -r2 335# CHECK-NEXT: 2 1 1.00 * strht r2, [r5], #76 336# CHECK-NEXT: 2 1 1.00 * strht r8, [r1], #-25 337# CHECK-NEXT: 2 1 1.00 * strht r5, [r3], r4 338# CHECK-NEXT: 2 1 1.00 * strht r6, [r8], -r0 339 340# CHECK: Resources: 341# CHECK-NEXT: [0] - A57UnitB 342# CHECK-NEXT: [1.0] - A57UnitI 343# CHECK-NEXT: [1.1] - A57UnitI 344# CHECK-NEXT: [2] - A57UnitL 345# CHECK-NEXT: [3] - A57UnitM 346# CHECK-NEXT: [4] - A57UnitS 347# CHECK-NEXT: [5] - A57UnitW 348# CHECK-NEXT: [6] - A57UnitX 349 350# CHECK: Resource pressure per iteration: 351# CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6] 352# CHECK-NEXT: - 71.50 71.50 174.00 10.00 57.00 - - 353 354# CHECK: Resource pressure by instruction: 355# CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6] Instructions: 356# CHECK-NEXT: - - - 1.00 - - - - pld [pc, #8] 357# CHECK-NEXT: - - - 1.00 - - - - pldw [pc, #-128] 358# CHECK-NEXT: - - - 1.00 - - - - pldw [pc, r0, lsl #2] 359# CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, r0, lsl #4] 360# CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, -r0] 361# CHECK-NEXT: - - - 1.00 - - - - ldr r5, [r7] 362# CHECK-NEXT: - - - 1.00 - - - - ldr r6, [r3, #63] 363# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r4, #4095]! 364# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r2], #30 365# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r1], #-30 366# CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1] 367# CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1, lsl #2] 368# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, r1, asr #2] 369# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r5, -r3] 370# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5, r9]! 371# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r6, [r7, -r8]! 372# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r0, r2, lsr #3]! 373# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r5, [r9], r2 374# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r4, [r3], -r6 375# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, -r2, lsl #15] 376# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5], r3, asr #15 377# CHECK-NEXT: - - - 1.00 - - - - ldrb r3, [r8] 378# CHECK-NEXT: - - - 1.00 - - - - ldrb r1, [sp, #63] 379# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r9, [r3, #4095]! 380# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r1], #22 381# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r7], #-19 382# CHECK-NEXT: - - - 1.00 - - - - ldrb r9, [r8, r5] 383# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r1, [r5, -r1] 384# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2]! 385# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, lsl #2]! 386# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, asr #2]! 387# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r6, [r9, -r3]! 388# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r1], r4 389# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r4], -r5 390# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r7, [r12, -r1, lsl #15] 391# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r5, [r2], r9, asr #15 392# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r3, [r1], #4 393# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r2, [r8], #-8 394# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r8, [r7], r6 395# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - ldrbt r1, [r2], -r6, lsl #12 396# CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5] 397# CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5, r2] 398# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r5, -r2] 399# CHECK-NEXT: - - - 2.00 - - - - ldrd r8, r9, [r2, #15] 400# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r9, #32]! 401# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r6, r7, [r1], #8 402# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0 403# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0 404# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #-0 405# CHECK-NEXT: - - - 2.00 - - - - ldrd r4, r5, [r1, r3] 406# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r4, r5, [r7, r2]! 407# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], r12 408# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], -r12 409# CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r4] 410# CHECK-NEXT: - - - 1.00 - - - - ldrh r2, [r7, #4] 411# CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r8, #64]! 412# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r12, [sp], #4 413# CHECK-NEXT: - - - 1.00 - - - - ldrh r6, [r5, r4] 414# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r6, [r5, -r4] 415# CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r8, r11]! 416# CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r2, -r1]! 417# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r9, [r7], r2 418# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r4, [r3], -r2 419# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], #128 420# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], #-75 421# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], r2 422# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], -r2 423# CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r4] 424# CHECK-NEXT: - - - 1.00 - - - - ldrsb r2, [r7, #17] 425# CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r8, #255]! 426# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r12, [sp], #9 427# CHECK-NEXT: - - - 1.00 - - - - ldrsb r6, [r5, r4] 428# CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r8, r11]! 429# CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r2, -r1]! 430# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r9, [r7], r2 431# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r4, [r3], -r2 432# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r5, [r6], #1 433# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r3, [r8], #-12 434# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r8, [r9], r5 435# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r2, [r1], -r4 436# CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r9] 437# CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r5, #7] 438# CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r6, #55]! 439# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r2, [r7], #-9 440# CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r1, r5] 441# CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r6, r1]! 442# CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r3, -r6]! 443# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r6, [r9], r8 444# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r7, [r8], -r3 445# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r5, [r6], #1 446# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r3, [r8], #-12 447# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r8, [r9], r5 448# CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r2, [r1], -r4 449# CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6} 450# CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6} 451# CHECK-NEXT: - - - 6.00 - - - - ldm r2, {r1, r3, r4, r5, r6} 452# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmib r2, {r1, r2} 453# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdb r2, {r1, r2} 454# CHECK-NEXT: - - - 2.00 - - - - ldmib r2, {r1, r3} 455# CHECK-NEXT: - - - 4.00 - - - - ldmib r2, {r1, r3, r5} 456# CHECK-NEXT: - 2.00 2.00 4.00 - - - - ldmib r2, {r1, r2, r5} 457# CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdbeq r2, {r1, r2} 458# CHECK-NEXT: - - - 2.00 - - - - ldmibeq r2, {r1, r3} 459# CHECK-NEXT: - - - 16.00 - - - - ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc} 460# 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} 461# CHECK-NEXT: - - - - - 1.00 - - str r8, [r12] 462# CHECK-NEXT: - - - - - 1.00 - - str r7, [r1, #12] 463# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r5, #40]! 464# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r9, [sp], #4095 465# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r1, [r7], #-128 466# CHECK-NEXT: - - - - - 1.00 - - str r9, [r6, r3] 467# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r8, [r0, -r2] 468# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r7, [r1, r6]! 469# CHECK-NEXT: - - - - 1.00 1.00 - - str r7, [r1, r6, lsl #2]! 470# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r6, [sp, -r1]! 471# CHECK-NEXT: - - - - 1.00 1.00 - - str r5, [r3], r9 472# CHECK-NEXT: - - - - 1.00 1.00 - - str r4, [r2], -r5 473# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r4, -r2, lsl #2] 474# CHECK-NEXT: - - - - 1.00 1.00 - - str r2, [r7], r3, asr #24 475# CHECK-NEXT: - - - - - 1.00 - - strb r9, [r2] 476# CHECK-NEXT: - - - - - 1.00 - - strb r7, [r1, #3] 477# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r6, [r4, #405]! 478# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r5, [r7], #72 479# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r1, [sp], #-1 480# CHECK-NEXT: - - - - - 1.00 - - strb r1, [r2, r9] 481# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r2, [r3, -r8] 482# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r3, [r4, r7]! 483# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r4, [r5, -r6]! 484# CHECK-NEXT: - - - - 1.00 1.00 - - strb r5, [r6], r5 485# CHECK-NEXT: - - - - 1.00 1.00 - - strb r6, [r2], -r4 486# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r7, [r12, -r3, lsl #5] 487# CHECK-NEXT: - - - - 1.00 1.00 - - strb sp, [r7], r2, asr #12 488# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r6, [r2], #12 489# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r5, [r6], #-13 490# CHECK-NEXT: - - - - 1.00 1.00 - - strbt r4, [r9], r5 491# CHECK-NEXT: - - - - 1.00 1.00 - - strbt r3, [r8], -r2, lsl #3 492# CHECK-NEXT: - - - - - 1.00 - - strd r0, r1, [r4] 493# CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, #1] 494# CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, r2] 495# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r6, -r2] 496# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r7, #22]! 497# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r8], #7 498# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [sp], #0 499# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [lr], #0 500# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r9], #-0 501# CHECK-NEXT: - - - - - 1.00 - - strd r8, r9, [r4, r1] 502# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r3, r9]! 503# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r5], r8 504# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r12], -r10 505# CHECK-NEXT: - - - - - 1.00 - - strh r3, [r4] 506# CHECK-NEXT: - - - - - 1.00 - - strh r2, [r7, #4] 507# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r8, #64]! 508# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r12, [sp], #4 509# CHECK-NEXT: - - - - - 1.00 - - strh r6, [r5, r4] 510# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r3, [r8, r11]! 511# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r2, -r1]! 512# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r9, [r7], r2 513# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r4, [r3], -r2 514# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r2, [r5], #76 515# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r8, [r1], #-25 516# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r5, [r3], r4 517# CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r6, [r8], -r0 518