diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s new file mode 100644 index 0000000000000..f0a7bdfe1fa4b --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s @@ -0,0 +1,1448 @@ +#------------------------------------------------------------------------------ +# Add/sub (immediate) +#------------------------------------------------------------------------------ + +add w2, w3, #4095 +add w30, w29, #1, lsl #12 +add w13, w5, #4095, lsl #12 +add x5, x7, #1638 +add w20, wsp, #801 +add wsp, wsp, #1104 +add wsp, w30, #4084 +add x0, x24, #291 +add x3, x24, #4095, lsl #12 +add x8, sp, #1074 +add sp, x29, #3816 +sub w0, wsp, #4077 +sub w4, w20, #546, lsl #12 +sub sp, sp, #288 +sub wsp, w19, #16 +adds w13, w23, #291, lsl #12 +cmn w2, #4095 +adds w20, wsp, #0 +cmn x3, #1, lsl #12 +cmp wsp, #2342 +cmp sp, #20, lsl #12 +cmp x30, #4095 +subs x4, sp, #3822 +cmn w3, #291, lsl #12 +cmn wsp, #1365 +cmn sp, #1092, lsl #12 +mov x10, #-63432 + +#------------------------------------------------------------------------------ +# Add-subtract (shifted register) +#------------------------------------------------------------------------------ + +add wsp, wsp, w10 +add x25, x9, w25, uxtb +add w3, w5, w7 +add wzr, w3, w5 +add w20, wzr, w4 +add w4, w6, wzr +add w11, w13, w15 +add w9, w3, wzr, lsl #1 +add w17, w29, w20, lsl #31 +add w21, w22, w23, lsr #0 +add w24, w25, w26, lsr #18 +add w27, w28, w29, lsr #31 +add w2, w3, w4, asr #0 +add w5, w6, w7, asr #21 +add w8, w9, w10, asr #31 +add x3, x5, x7 +add xzr, x3, x5 +add x20, xzr, x4 +add x4, x6, xzr +add x11, x13, x15 +add x9, x3, xzr, lsl #10 +add x17, x29, x20, lsl #3 +add x21, x22, x23, lsr #0 +add x24, x25, x26, lsr #18 +add x27, x28, x29, lsr #63 +add x2, x3, x4, asr #0 +add x5, x6, x7, asr #21 +add x8, x9, x10, asr #63 +adds w3, w5, w7 +adds w17, wsp, w25 +adds x13, x23, w8, uxtb +cmn w3, w5 +adds w20, wzr, w4 +adds w4, w6, wzr +adds w11, w13, w15 +adds w9, w3, wzr, lsl #1 +adds w17, w29, w20, lsl #31 +adds w21, w22, w23, lsr #0 +adds w24, w25, w26, lsr #18 +adds w27, w28, w29, lsr #31 +adds w2, w3, w4, asr #0 +adds w5, w6, w7, asr #21 +adds w8, w9, w10, asr #31 +adds x3, x5, x7 +cmn x3, x5 +adds x20, xzr, x4 +adds x4, x6, xzr +adds x11, x13, x15 +adds x9, x3, xzr, lsl #10 +adds x17, x29, x20, lsl #3 +adds x21, x22, x23, lsr #0 +adds x24, x25, x26, lsr #18 +adds x27, x28, x29, lsr #63 +adds x2, x3, x4, asr #0 +adds x5, x6, x7, asr #21 +adds x8, x9, x10, asr #63 +sub w3, w5, w7 +sub wzr, w3, w5 +sub w4, w6, wzr +sub w11, w13, w15 +sub w9, w3, wzr, lsl #1 +sub w17, w29, w20, lsl #31 +sub w21, w22, w23, lsr #0 +sub w24, w25, w26, lsr #18 +sub w27, w28, w29, lsr #31 +sub w2, w3, w4, asr #0 +sub w5, w6, w7, asr #21 +sub w8, w9, w10, asr #31 +sub x3, x5, x7 +sub xzr, x3, x5 +sub x4, x6, xzr +sub x11, x13, x15 +sub x9, x3, xzr, lsl #10 +sub x17, x29, x20, lsl #3 +sub x21, x22, x23, lsr #0 +sub x24, x25, x26, lsr #18 +sub x27, x28, x29, lsr #63 +sub x2, x3, x4, asr #0 +sub x5, x6, x7, asr #21 +sub x8, x9, x10, asr #63 +sub w13, wsp, w10 +sub x16, x2, w19, uxtb +subs x13, x15, x14, sxtx #1 +subs w3, w5, w7 +cmp w3, w5 +subs w4, w6, wzr +subs w11, w13, w15 +subs w9, w3, wzr, lsl #1 +subs w17, w29, w20, lsl #31 +subs w21, w22, w23, lsr #0 +subs w24, w25, w26, lsr #18 +subs w27, w28, w29, lsr #31 +subs w2, w3, w4, asr #0 +subs w5, w6, w7, asr #21 +subs w8, w9, w10, asr #31 +subs x3, x5, x7 +cmp x3, x5 +subs x4, x6, xzr +subs x11, x13, x15 +subs x9, x3, xzr, lsl #10 +subs x17, x29, x20, lsl #3 +subs x21, x22, x23, lsr #0 +subs x24, x25, x26, lsr #18 +subs x27, x28, x29, lsr #63 +subs x2, x3, x4, asr #0 +subs x5, x6, x7, asr #21 +subs x8, x9, x10, asr #63 +cmn wzr, w4 +cmn w5, wzr +cmn w6, w7 +cmn w8, w9, lsl #1 +cmn w10, w11, lsl #31 +cmn w12, w13, lsr #0 +cmn w14, w15, lsr #21 +cmn w16, w17, lsr #31 +cmn w18, w19, asr #0 +cmn w20, w21, asr #22 +cmn w22, w23, asr #31 +cmn x0, x3 +cmn xzr, x4 +cmn x5, xzr +cmn x6, x7 +cmn x8, x9, lsl #15 +cmn x10, x11, lsl #3 +cmn x12, x13, lsr #0 +cmn x14, x15, lsr #41 +cmn x16, x17, lsr #63 +cmn x18, x19, asr #0 +cmn x20, x21, asr #55 +cmn x22, x23, asr #63 +cmp w0, w3 +cmp wzr, w4 +cmp w5, wzr +cmp w6, w7 +cmp w8, w9, lsl #1 +cmp w10, w11, lsl #31 +cmp w12, w13, lsr #0 +cmp w14, w15, lsr #21 +cmp w18, w19, asr #0 +cmp w20, w21, asr #22 +cmp w22, w23, asr #31 +cmp wsp, w26 +cmp x16, w27, uxtb +cmp x0, x3 +cmp xzr, x4 +cmp x5, xzr +cmp x6, x7 +cmp x8, x9, lsl #15 +cmp x10, x11, lsl #3 +cmp x12, x13, lsr #0 +cmp x14, x15, lsr #41 +cmp x16, x17, lsr #63 +cmp x18, x19, asr #0 +cmp x20, x21, asr #55 +cmp x22, x23, asr #63 +cmp wzr, w0 +cmp xzr, x0 +mov sp, x30 +mov wsp, w20 +mov x11, sp +mov w24, wsp + +#------------------------------------------------------------------------------ +# Add-subtract (shifted register) +#------------------------------------------------------------------------------ + +adc w29, w27, w25 +adc wzr, w3, w4 +adc w9, wzr, w10 +adc w20, w0, wzr +adc x29, x27, x25 +adc xzr, x3, x4 +adc x9, xzr, x10 +adc x20, x0, xzr +adcs w29, w27, w25 +adcs wzr, w3, w4 +adcs w9, wzr, w10 +adcs w20, w0, wzr +adcs x29, x27, x25 +adcs xzr, x3, x4 +adcs x9, xzr, x10 +adcs x20, x0, xzr +sbc w29, w27, w25 +sbc wzr, w3, w4 +ngc w9, w10 +sbc w20, w0, wzr +sbc x29, x27, x25 +sbc xzr, x3, x4 +ngc x9, x10 +sbc x20, x0, xzr +sbcs w29, w27, w25 +sbcs wzr, w3, w4 +ngcs w9, w10 +sbcs w20, w0, wzr +sbcs x29, x27, x25 +sbcs xzr, x3, x4 +ngcs x9, x10 +sbcs x20, x0, xzr +ngc w3, w12 +ngc wzr, w9 +ngc w23, wzr +ngc x29, x30 +ngc xzr, x0 +ngc x0, xzr +ngcs w3, w12 +ngcs wzr, w9 +ngcs w23, wzr +ngcs x29, x30 +ngcs xzr, x0 +ngcs x0, xzr + +#------------------------------------------------------------------------------ +# Compare and branch (immediate) +#------------------------------------------------------------------------------ + +sbfx x1, x2, #3, #2 +asr x3, x4, #63 +asr wzr, wzr, #31 +sbfx w12, w9, #0, #1 +ubfiz x4, x5, #52, #11 +ubfx xzr, x4, #0, #1 +ubfiz x4, xzr, #1, #6 +lsr x5, x6, #12 +bfi x4, x5, #52, #11 +bfxil xzr, x4, #0, #1 +bfi x4, xzr, #1, #6 +bfxil x5, x6, #12, #52 +sxtb w1, w2 +sxtb xzr, w3 +sxth w9, w10 +sxth x0, w1 +sxtw x3, w30 +uxtb w1, w2 +uxth w9, w10 +ubfx x3, x30, #0, #32 +asr w3, w2, #0 +asr w9, w10, #31 +asr x20, x21, #63 +asr w1, wzr, #3 +lsr w3, w2, #0 +lsr w9, w10, #31 +lsr x20, x21, #63 +lsr wzr, wzr, #3 +lsl w9, w10, #31 +lsl x20, x21, #63 +lsl w1, wzr, #3 +sbfiz x2, x3, #63, #1 +sbfiz x9, x10, #5, #59 +sbfiz w11, w12, #31, #1 +sbfiz w13, w14, #29, #3 +sbfiz xzr, xzr, #10, #11 +sbfx w9, w10, #0, #1 +asr x2, x3, #63 +asr x19, x20, #0 +asr x9, x10, #5 +asr w9, w10, #0 +asr w11, w12, #31 +asr w13, w14, #29 +sbfx xzr, xzr, #10, #11 +bfi x2, x3, #63, #1 +bfi x9, x10, #5, #59 +bfi w11, w12, #31, #1 +bfi w13, w14, #29, #3 +bfi xzr, xzr, #10, #11 +bfxil w9, w10, #0, #1 +bfxil x2, x3, #63, #1 +bfxil x19, x20, #0, #64 +bfxil x9, x10, #5, #59 +bfxil w9, w10, #0, #32 +bfxil w11, w12, #31, #1 +bfxil w13, w14, #29, #3 +bfxil xzr, xzr, #10, #11 +lsl x2, x3, #63 +lsl x9, x10, #5 +lsl w11, w12, #31 +lsl w13, w14, #29 +ubfiz xzr, xzr, #10, #11 +ubfx w9, w10, #0, #1 +lsr x2, x3, #63 +lsr x19, x20, #0 +lsr x9, x10, #5 +lsr w9, w10, #0 +lsr w11, w12, #31 +lsr w13, w14, #29 +ubfx xzr, xzr, #10, #11 + +#------------------------------------------------------------------------------ +# Compare and branch (immediate) +#------------------------------------------------------------------------------ + +cbz w5, #4 +cbz x5, #0 +cbnz x2, #-4 +cbnz x26, #1048572 +cbz wzr, #0 +cbnz xzr, #0 +cbnz w21, test + +#------------------------------------------------------------------------------ +# Conditional branch (immediate) +#------------------------------------------------------------------------------ + +b.ne #4 +b.ge #1048572 +b.ge #-4 + +#------------------------------------------------------------------------------ +# Conditional compare (immediate) +#------------------------------------------------------------------------------ + +ccmp w1, #31, #0, eq +ccmp w3, #0, #15, hs +ccmp wzr, #15, #13, hs +ccmp x9, #31, #0, le +ccmp x3, #0, #15, gt +ccmp xzr, #5, #7, ne +ccmn w1, #31, #0, eq +ccmn w3, #0, #15, hs +ccmn wzr, #15, #13, hs +ccmn x9, #31, #0, le +ccmn x3, #0, #15, gt +ccmn xzr, #5, #7, ne + +#------------------------------------------------------------------------------ +# Conditional compare (register) +#------------------------------------------------------------------------------ + +ccmp w1, wzr, #0, eq +ccmp w3, w0, #15, hs +ccmp wzr, w15, #13, hs +ccmp x9, xzr, #0, le +ccmp x3, x0, #15, gt +ccmp xzr, x5, #7, ne +ccmn w1, wzr, #0, eq +ccmn w3, w0, #15, hs +ccmn wzr, w15, #13, hs +ccmn x9, xzr, #0, le +ccmn x3, x0, #15, gt +ccmn xzr, x5, #7, ne + +#------------------------------------------------------------------------------ +# Conditional branch (immediate) +#------------------------------------------------------------------------------ + +csel w1, w0, w19, ne +csel wzr, w5, w9, eq +csel w9, wzr, w30, gt +csel w1, w28, wzr, mi +csel x19, x23, x29, lt +csel xzr, x3, x4, ge +csel x5, xzr, x6, hs +csel x7, x8, xzr, lo +csinc w1, w0, w19, ne +csinc wzr, w5, w9, eq +csinc w9, wzr, w30, gt +csinc w1, w28, wzr, mi +csinc x19, x23, x29, lt +csinc xzr, x3, x4, ge +csinc x5, xzr, x6, hs +csinc x7, x8, xzr, lo +csinv w1, w0, w19, ne +csinv wzr, w5, w9, eq +csinv w9, wzr, w30, gt +csinv w1, w28, wzr, mi +csinv x19, x23, x29, lt +csinv xzr, x3, x4, ge +csinv x5, xzr, x6, hs +csinv x7, x8, xzr, lo +csneg w1, w0, w19, ne +csneg wzr, w5, w9, eq +csneg w9, wzr, w30, gt +csneg w1, w28, wzr, mi +csneg x19, x23, x29, lt +csneg xzr, x3, x4, ge +csneg x5, xzr, x6, hs +csneg x7, x8, xzr, lo +cset w3, eq +cset x9, pl +csetm w20, ne +csetm x30, ge +csinc w2, wzr, wzr, al +csinv x3, xzr, xzr, nv +cinc w3, w5, gt +cinc wzr, w4, le +cset w9, lt +cinc x3, x5, gt +cinc xzr, x4, le +cset x9, lt +csinc w5, w6, w6, nv +csinc x1, x2, x2, al +cinv w3, w5, gt +cinv wzr, w4, le +csetm w9, lt +cinv x3, x5, gt +cinv xzr, x4, le +csetm x9, lt +csinv x1, x0, x0, al +csinv w9, w8, w8, nv +cneg w3, w5, gt +cneg wzr, w4, le +cneg w9, wzr, lt +cneg x3, x5, gt +cneg xzr, x4, le +cneg x9, xzr, lt +csneg x4, x8, x8, al + +#------------------------------------------------------------------------------ +# Data-processing (1 source) +#------------------------------------------------------------------------------ + +rbit w0, w7 +rbit x18, x3 +rev16 w17, w1 +rev16 x5, x2 +rev w18, w0 +rev32 x20, x1 +rev x22, x2 +clz w24, w3 +clz x26, x4 +cls w3, w5 +cls x20, x5 + +#------------------------------------------------------------------------------ +# Data-processing (2 source) +#------------------------------------------------------------------------------ + +udiv w0, w7, w10 +udiv x9, x22, x4 +sdiv w12, w21, w0 +sdiv x13, x2, x1 +lsl w11, w12, w13 +lsl x14, x15, x16 +lsr w17, w18, w19 +lsr x20, x21, x22 +asr w23, w24, w25 +asr x26, x27, x28 +ror w0, w1, w2 +ror x3, x4, x5 +lsl w6, w7, w8 +lsl x9, x10, x11 +lsr w12, w13, w14 +lsr x15, x16, x17 +asr w18, w19, w20 +asr x21, x22, x23 +ror w24, w25, w26 +ror x27, x28, x29 + +#------------------------------------------------------------------------------ +# Data-processing (3 sources) +#------------------------------------------------------------------------------ + +crc32cb w30, w23, w15 +crc32cb w31, w12, w14 +crc32cb w28, w10, w11 +crc32b w27, w12, w15 +crc32h w3, w15, w21 +crc32w w9, w18, w24 +crc32x w19, w6, x25 +crc32ch w25, w26, w16 +crc32cw w27, w12, w23 +crc32cx w21, w28, x5 +smulh x30, x29, x28 +smulh xzr, x27, x26 +umulh x30, x29, x28 +umulh x23, x30, xzr +madd w1, w3, w7, w4 +madd wzr, w0, w9, w11 +madd w13, wzr, w4, w4 +madd w19, w30, wzr, w29 +mul w4, w5, w6 +madd x1, x3, x7, x4 +madd xzr, x0, x9, x11 +madd x13, xzr, x4, x4 +madd x19, x30, xzr, x29 +mul x4, x5, x6 +msub w1, w3, w7, w4 +msub wzr, w0, w9, w11 +msub w13, wzr, w4, w4 +msub w19, w30, wzr, w29 +mneg w4, w5, w6 +msub x1, x3, x7, x4 +msub xzr, x0, x9, x11 +msub x13, xzr, x4, x4 +msub x19, x30, xzr, x29 +mneg x4, x5, x6 +smaddl x3, w5, w2, x9 +smaddl xzr, w10, w11, x12 +smaddl x13, wzr, w14, x15 +smaddl x16, w17, wzr, x18 +smull x19, w20, w21 +smsubl x3, w5, w2, x9 +smsubl xzr, w10, w11, x12 +smsubl x13, wzr, w14, x15 +smsubl x16, w17, wzr, x18 +smnegl x19, w20, w21 +umaddl x3, w5, w2, x9 +umaddl xzr, w10, w11, x12 +umaddl x13, wzr, w14, x15 +umaddl x16, w17, wzr, x18 +umull x19, w20, w21 +umsubl x3, w5, w2, x9 +umsubl x16, w17, wzr, x18 +umnegl x19, w20, w21 +smulh x23, x22, xzr +umulh x23, x22, xzr +mul x19, x20, xzr +mneg w21, w22, w23 +smull x11, w13, w17 +umull x11, w13, w17 +smnegl x11, w13, w17 +umnegl x11, w13, w17 + +#------------------------------------------------------------------------------ +# Extract (immediate) +#------------------------------------------------------------------------------ + +extr w3, w5, w7, #0 +extr w11, w13, w17, #31 +extr x3, x5, x7, #15 +extr x11, x13, x17, #63 +ror x19, x23, #24 +ror x29, xzr, #63 +ror w9, w13, #31 + +#------------------------------------------------------------------------------ +# Floating-point compare +#------------------------------------------------------------------------------ + +fcmp h5, h21 +fcmp h5, #0.0 +fcmpe h22, h21 +fcmpe h13, #0.0 +fcmp s3, s5 +fcmp s31, #0.0 +fcmpe s29, s30 +fcmpe s15, #0.0 +fcmp d4, d12 +fcmp d23, #0.0 +fcmpe d26, d22 +fcmpe d29, #0.0 + +#------------------------------------------------------------------------------ +# Floating-point conditional compare +#------------------------------------------------------------------------------ + +fccmp s1, s31, #0, eq +fccmp s3, s0, #15, hs +fccmp s31, s15, #13, hs +fccmp d9, d31, #0, le +fccmp d3, d0, #15, gt +fccmp d31, d5, #7, ne +fccmp h31, h3, #11, hs +fccmpe h6, h1, #12, ne +fccmpe s1, s31, #0, eq +fccmpe s3, s0, #15, hs +fccmpe s31, s15, #13, hs +fccmpe d9, d31, #0, le +fccmpe d3, d0, #15, gt +fccmpe d31, d5, #7, ne + +#------------------------------------------------------------------------------- +# Floating-point conditional compare +#------------------------------------------------------------------------------- + +fcsel s3, s20, s9, pl +fcsel d9, d10, d11, mi +fcsel h26, h2, h11, hs + +#------------------------------------------------------------------------------ +# Floating-point data-processing (1 source) +#------------------------------------------------------------------------------ + +fmov h18, h28 +fmov s0, s1 +fabs s2, s3 +fneg h2, h9 +fneg s4, s5 +fsqrt s6, s7 +fcvt d8, s9 +fcvt h10, s11 +frintn h12, h3 +frintn s12, s13 +frintp h17, h31 +frintp s14, s15 +frintm h0, h21 +frintm s16, s17 +frintz h10, h29 +frintz s18, s19 +frinta h22, h10 +frinta s20, s21 +frintx h4, h5 +frintx s22, s23 +frinti s24, s25 +frinti h31, h14 +fmov d0, d1 +fabs d2, d3 +fneg d4, d5 +fsqrt h13, h24 +fsqrt d6, d7 +fcvt s8, d9 +fcvt h10, d11 +frintn d12, d13 +frintp d14, d15 +frintm d16, d17 +frintz d18, d19 +frinta d20, d21 +frintx d22, d23 +frinti d24, d25 +fcvt s26, h27 +fcvt d28, h29 + +#------------------------------------------------------------------------------ +# Floating-point data-processing (2 sources) +#------------------------------------------------------------------------------ + +fmul s20, s19, s17 +fdiv h1, h26, h23 +fdiv s1, s2, s3 +fadd h23, h27, h22 +fadd s4, s5, s6 +fsub h20, h11, h18 +fsub s7, s8, s9 +fmax s10, s11, s12 +fmax h8, h7, h11 +fmin s13, s14, s15 +fmaxnm h29, h13, h14 +fmaxnm s16, s17, s18 +fminnm s19, s20, s21 +fnmul h3, h15, h7 +fnmul s22, s23, s2 +fmul d20, d19, d17 +fdiv d1, d2, d3 +fadd d4, d5, d6 +fsub d7, d8, d9 +fmax d10, d11, d12 +fmin d13, d14, d15 +fmin h4, h13, h17 +fmaxnm d16, d17, d18 +fminnm d19, d20, d21 +fminnm h29, h23, h17 +fnmul d22, d23, d24 + +#------------------------------------------------------------------------------ +# Floating-point data-processing (1 source) +#------------------------------------------------------------------------------ + +fmadd h27, h0, h6, h28 +fmadd s3, s5, s6, s31 +fmadd d3, d13, d0, d23 +fmsub h25, h28, h12, h24 +fmsub s3, s5, s6, s31 +fmsub d3, d13, d0, d23 +fnmadd h3, h18, h31, h24 +fnmadd s3, s5, s6, s31 +fnmadd d3, d13, d0, d23 +fnmsub s3, s5, s6, s31 +fnmsub d3, d13, d0, d23 +fnmsub h3, h29, h24, h17 + +#------------------------------------------------------------------------------ +# Floating-point <-> fixed-point conversion +#------------------------------------------------------------------------------ + +fcvtzs w3, h5, #1 +fcvtzs wzr, h20, #13 +fcvtzs w19, h0, #32 +fcvtzs x3, h5, #1 +fcvtzs x12, h30, #45 +fcvtzs x19, h0, #64 +fcvtzs w3, s5, #1 +fcvtzs wzr, s20, #13 +fcvtzs w19, s0, #32 +fcvtzs x3, s5, #1 +fcvtzs x12, s30, #45 +fcvtzs x19, s0, #64 +fcvtzs w3, d5, #1 +fcvtzs wzr, d20, #13 +fcvtzs w19, d0, #32 +fcvtzs x3, d5, #1 +fcvtzs x12, d30, #45 +fcvtzs x19, d0, #64 +fcvtzu w3, h5, #1 +fcvtzu wzr, h20, #13 +fcvtzu w19, h0, #32 +fcvtzu x3, h5, #1 +fcvtzu x12, h30, #45 +fcvtzu x19, h0, #64 +fcvtzu w3, s5, #1 +fcvtzu wzr, s20, #13 +fcvtzu w19, s0, #32 +fcvtzu x3, s5, #1 +fcvtzu x12, s30, #45 +fcvtzu x19, s0, #64 +fcvtzu w3, d5, #1 +fcvtzu wzr, d20, #13 +fcvtzu w19, d0, #32 +fcvtzu x3, d5, #1 +fcvtzu x12, d30, #45 +fcvtzu x19, d0, #64 +scvtf h23, w19, #1 +scvtf h31, wzr, #20 +scvtf h14, w0, #32 +scvtf h23, x19, #1 +scvtf h31, xzr, #20 +scvtf h14, x0, #64 +scvtf s23, w19, #1 +scvtf s31, wzr, #20 +scvtf s14, w0, #32 +scvtf s23, x19, #1 +scvtf s31, xzr, #20 +scvtf s14, x0, #64 +scvtf d23, w19, #1 +scvtf d31, wzr, #20 +scvtf d14, w0, #32 +scvtf d23, x19, #1 +scvtf d31, xzr, #20 +scvtf d14, x0, #64 +ucvtf h23, w19, #1 +ucvtf h31, wzr, #20 +ucvtf h14, w0, #32 +ucvtf h23, x19, #1 +ucvtf h31, xzr, #20 +ucvtf h14, x0, #64 +ucvtf s23, w19, #1 +ucvtf s31, wzr, #20 +ucvtf s14, w0, #32 +ucvtf s23, x19, #1 +ucvtf s31, xzr, #20 +ucvtf s14, x0, #64 +ucvtf d23, w19, #1 +ucvtf d31, wzr, #20 +ucvtf d14, w0, #32 +ucvtf d23, x19, #1 +ucvtf d31, xzr, #20 +ucvtf d14, x0, #64 + +#------------------------------------------------------------------------------ +# Floating-point <-> integer conversion +#------------------------------------------------------------------------------ + +fcvtns w3, h31 +fcvtns xzr, h12 +fcvtnu wzr, h12 +fcvtnu x0, h0 +fcvtps wzr, h9 +fcvtps x12, h20 +fcvtpu w30, h23 +fcvtpu x29, h3 +fcvtms w2, h3 +fcvtms x4, h5 +fcvtmu w6, h7 +fcvtmu x8, h9 +fcvtzs w10, h11 +fcvtzs x12, h13 +fcvtzu w14, h15 +fcvtzu x15, h16 +scvtf h17, w18 +scvtf h19, x20 +ucvtf h21, w22 +scvtf h23, x24 +fcvtas w25, h26 +fcvtas x27, h28 +fcvtau w29, h30 +fcvtau xzr, h0 +fcvtns w3, s31 +fcvtns xzr, s12 +fcvtnu wzr, s12 +fcvtnu x0, s0 +fcvtps wzr, s9 +fcvtps x12, s20 +fcvtpu w30, s23 +fcvtpu x29, s3 +fcvtms w2, s3 +fcvtms x4, s5 +fcvtmu w6, s7 +fcvtmu x8, s9 +fcvtzs w10, s11 +fcvtzs x12, s13 +fcvtzu w14, s15 +fcvtzu x15, s16 +scvtf s17, w18 +scvtf s19, x20 +ucvtf s21, w22 +scvtf s23, x24 +fcvtas w25, s26 +fcvtas x27, s28 +fcvtau w29, s30 +fcvtau xzr, s0 +fcvtns w3, d31 +fcvtns xzr, d12 +fcvtnu wzr, d12 +fcvtnu x0, d0 +fcvtps wzr, d9 +fcvtps x12, d20 +fcvtpu w30, d23 +fcvtpu x29, d3 +fcvtms w2, d3 +fcvtms x4, d5 +fcvtmu w6, d7 +fcvtmu x8, d9 +fcvtzs w10, d11 +fcvtzs x12, d13 +fcvtzu w14, d15 +fcvtzu x15, d16 +scvtf d17, w18 +scvtf d19, x20 +ucvtf d21, w22 +ucvtf d23, x24 +fcvtas w25, d26 +fcvtas x27, d28 +fcvtau w29, d30 +fcvtau xzr, d0 +fmov h6, w5 +fmov h16, x27 +fmov w15, h31 +fmov w3, s9 +fmov s9, w3 +fmov x21, h14 +fmov x20, d31 +fmov d1, x15 +fmov x3, v12.d[1] +fmov v1.d[1], x19 + +#------------------------------------------------------------------------------ +# Floating-point immediate +#------------------------------------------------------------------------------ + +fmov h29, #0.50000000 +fmov s2, #0.12500000 +fmov s3, #1.00000000 +fmov d30, #16.00000000 +fmov s4, #1.06250000 +fmov d10, #1.93750000 +fmov s12, #-1.00000000 +fmov d16, #8.50000000 + +#------------------------------------------------------------------------------ +# Load-register (literal) +#------------------------------------------------------------------------------ + +ldr w3, #0 +ldr x29, #4 +ldrsw xzr, #-4 +ldr s0, #8 +ldr d0, #1048572 +ldr q0, #-1048576 +prfm pldl1strm, #0 +prfm #22, #0 + +#------------------------------------------------------------------------------ +# Load/store exclusive +#------------------------------------------------------------------------------ + +stxrb w18, w8, [sp] +stxrh w24, w15, [x16] +stxr w5, w6, [x17] +stxr w1, x10, [x21] +ldxrb w30, [x0] +ldxrh w17, [x4] +ldxr w22, [sp] +ldxr x11, [x29] +stxp w12, w11, w10, [sp] +stxp wzr, x27, x9, [x12] +ldxp w0, wzr, [sp] +ldxp x17, x0, [x18] +stlxrb w12, w22, [x0] +stlxrh w10, w1, [x1] +stlxr w9, w2, [x2] +stlxr w9, x3, [sp] +ldaxrb w8, [x4] +ldaxrh w7, [x5] +ldaxr w6, [sp] +ldaxr x5, [x6] +stlxp w4, w5, w6, [sp] +stlxp wzr, x6, x7, [x1] +ldaxp w5, w18, [sp] +ldaxp x6, x19, [x22] +stlrb w24, [sp] +stlrh w25, [x30] +stlr w26, [x29] +stlr x27, [x28] +ldarb w16, [x21] +ldarb w23, [sp] +ldarh w22, [x30] +ldar wzr, [x29] +ldar x21, [x28] + +#------------------------------------------------------------------------------ +# Load/store (unscaled immediate) +#------------------------------------------------------------------------------ + +sturb w9, [sp] +sturh wzr, [x12, #255] +stur w16, [x0, #-256] +stur x28, [x14, #1] +ldurb w1, [x20, #255] +ldurh w20, [x1, #255] +ldur w12, [sp, #255] +ldur xzr, [x12, #255] +ldursb x9, [x7, #-256] +ldursh x17, [x19, #-256] +ldursw x20, [x15, #-256] +prfum pldl2keep, [sp, #-256] +ldursb w19, [x1, #-256] +ldursh w15, [x21, #-256] +stur b0, [sp, #1] +stur h12, [x12, #-1] +stur s15, [x0, #255] +stur d31, [x5, #25] +stur q9, [x5] +ldur b3, [sp] +ldur h5, [x4, #-256] +ldur s7, [x12, #-1] +ldur d11, [x19, #4] +ldur q13, [x1, #2] + +#------------------------------------------------------------------------------ +# Load/store (immediate post-indexed) +#------------------------------------------------------------------------------ + +strb w9, [x2], #255 +strb w10, [x3], #1 +strb w10, [x3], #-256 +strh w9, [x2], #255 +strh w9, [x2], #1 +strh w10, [x3], #-256 +str w19, [sp], #255 +str w20, [x30], #1 +str w21, [x12], #-256 +str xzr, [x9], #255 +str x2, [x3], #1 +str x19, [x12], #-256 +ldrb w9, [x2], #255 +ldrb w10, [x3], #1 +ldrb w10, [x3], #-256 +ldrh w9, [x2], #255 +ldrh w9, [x2], #1 +ldrh w10, [x3], #-256 +ldr w19, [sp], #255 +ldr w20, [x30], #1 +ldr w21, [x12], #-256 +ldr xzr, [x9], #255 +ldr x2, [x3], #1 +ldr x19, [x12], #-256 +ldrsb xzr, [x9], #255 +ldrsb x2, [x3], #1 +ldrsb x19, [x12], #-256 +ldrsh xzr, [x9], #255 +ldrsh x2, [x3], #1 +ldrsh x19, [x12], #-256 +ldrsw xzr, [x9], #255 +ldrsw x2, [x3], #1 +ldrsw x19, [x12], #-256 +ldrsb wzr, [x9], #255 +ldrsb w2, [x3], #1 +ldrsb w19, [x12], #-256 +ldrsh wzr, [x9], #255 +ldrsh w2, [x3], #1 +ldrsh w19, [x12], #-256 +str b0, [x0], #255 +str b3, [x3], #1 +str b5, [sp], #-256 +str h10, [x10], #255 +str h13, [x23], #1 +str h15, [sp], #-256 +str s20, [x20], #255 +str s23, [x23], #1 +str s25, [x0], #-256 +str d20, [x20], #255 +str d23, [x23], #1 +str d25, [x0], #-256 +ldr b0, [x0], #255 +ldr b3, [x3], #1 +ldr b5, [sp], #-256 +ldr h10, [x10], #255 +ldr h13, [x23], #1 +ldr h15, [sp], #-256 +ldr s20, [x20], #255 +ldr s23, [x23], #1 +ldr s25, [x0], #-256 +ldr d20, [x20], #255 +ldr d23, [x23], #1 +ldr d25, [x0], #-256 +ldr q20, [x1], #255 +ldr q23, [x9], #1 +ldr q25, [x20], #-256 +str q10, [x1], #255 +str q22, [sp], #1 +str q21, [x20], #-256 + +#------------------------------------------------------------------------------- +# Load-store register (immediate pre-indexed) +#------------------------------------------------------------------------------- + +ldr x3, [x4, #0]! +strb w9, [x2, #255]! +strb w10, [x3, #1]! +strb w10, [x3, #-256]! +strh w9, [x2, #255]! +strh w9, [x2, #1]! +strh w10, [x3, #-256]! +str w19, [sp, #255]! +str w20, [x30, #1]! +str w21, [x12, #-256]! +str xzr, [x9, #255]! +str x2, [x3, #1]! +str x19, [x12, #-256]! +ldrb w9, [x2, #255]! +ldrb w10, [x3, #1]! +ldrb w10, [x3, #-256]! +ldrh w9, [x2, #255]! +ldrh w9, [x2, #1]! +ldrh w10, [x3, #-256]! +ldr w19, [sp, #255]! +ldr w20, [x30, #1]! +ldr w21, [x12, #-256]! +ldr xzr, [x9, #255]! +ldr x2, [x3, #1]! +ldr x19, [x12, #-256]! +ldrsb xzr, [x9, #255]! +ldrsb x2, [x3, #1]! +ldrsb x19, [x12, #-256]! +ldrsh xzr, [x9, #255]! +ldrsh x2, [x3, #1]! +ldrsh x19, [x12, #-256]! +ldrsw xzr, [x9, #255]! +ldrsw x2, [x3, #1]! +ldrsw x19, [x12, #-256]! +ldrsb wzr, [x9, #255]! +ldrsb w2, [x3, #1]! +ldrsb w19, [x12, #-256]! +ldrsh wzr, [x9, #255]! +ldrsh w2, [x3, #1]! +ldrsh w19, [x12, #-256]! +str b0, [x0, #255]! +str b3, [x3, #1]! +str b5, [sp, #-256]! +str h10, [x10, #255]! +str h13, [x23, #1]! +str h15, [sp, #-256]! +str s20, [x20, #255]! +str s23, [x23, #1]! +str s25, [x0, #-256]! +str d20, [x20, #255]! +str d23, [x23, #1]! +str d25, [x0, #-256]! +ldr b0, [x0, #255]! +ldr b3, [x3, #1]! +ldr b5, [sp, #-256]! +ldr h10, [x10, #255]! +ldr h13, [x23, #1]! +ldr h15, [sp, #-256]! +ldr s20, [x20, #255]! +ldr s23, [x23, #1]! +ldr s25, [x0, #-256]! +ldr d20, [x20, #255]! +ldr d23, [x23, #1]! +ldr d25, [x0, #-256]! +ldr q20, [x1, #255]! +ldr q23, [x9, #1]! +ldr q25, [x20, #-256]! +str q10, [x1, #255]! +str q22, [sp, #1]! +str q21, [x20, #-256]! + +#------------------------------------------------------------------------------ +# Load/store (unprivileged) +#------------------------------------------------------------------------------ + +sttrb w9, [sp] +sttrh wzr, [x12, #255] +sttr w16, [x0, #-256] +sttr x28, [x14, #1] +ldtrb w1, [x20, #255] +ldtrh w20, [x1, #255] +ldtr w12, [sp, #255] +ldtr xzr, [x12, #255] +ldtrsb x9, [x7, #-256] +ldtrsh x17, [x19, #-256] +ldtrsw x20, [x15, #-256] +ldtrsb w19, [x1, #-256] +ldtrsh w15, [x21, #-256] + +#------------------------------------------------------------------------------ +# Load/store (unsigned immediate) +#------------------------------------------------------------------------------ + +ldr x4, [x29] +ldr x30, [x12, #32760] +ldr x20, [sp, #8] +ldr xzr, [sp] +ldr w2, [sp] +ldr w17, [sp, #16380] +ldr w13, [x2, #4] +ldrsw x2, [x5, #4] +ldrsw x23, [sp, #16380] +ldrsw x21, [x25, x7] +ldrh w2, [x4] +ldrsh w23, [x6, #8190] +ldrsh wzr, [sp, #2] +ldrsh x29, [x2, #2] +ldrsh x25, [x8, w13, uxtw] +ldrb w26, [x3, #121] +ldrb w12, [x2] +ldrsb w27, [sp, #4095] +ldrsb xzr, [x15] +ldrsb x12, [x28, x27] +str x30, [sp] +str w20, [x4, #16380] +str b5, [x11] +str h23, [x15] +str s25, [x19] +str d15, [x2] +strh w17, [sp, #8190] +strb w23, [x3, #4095] +strb wzr, [x2] +ldr b31, [sp, #4095] +ldr h20, [x2, #8190] +ldr s10, [x19, #16380] +ldr d3, [x10, #32760] +str q12, [sp, #65520] +ldr q14, [x6, #4624] + +#------------------------------------------------------------------------------ +# Load/store (register offset) +#------------------------------------------------------------------------------ + +ldrb w3, [sp, x5] +ldrb w9, [x27, x6] +ldrsb w10, [x30, x7] +ldrb w11, [x29, x3, sxtx] +strb w12, [x28, xzr, sxtx] +strb w5, [x26, w7, uxtw] +ldrb w14, [x26, w6, uxtw] +ldrsb w15, [x25, w7, uxtw] +ldrb w17, [x23, w9, sxtw] +ldrsb x18, [x22, w10, sxtw] +ldrsh w3, [sp, x5] +ldrsh w9, [x27, x6] +ldrh w10, [x30, x7, lsl #1] +strh w11, [x29, x3, sxtx] +ldrh w12, [x28, xzr, sxtx] +ldrsh x13, [x27, x5, sxtx #1] +ldrh w14, [x26, w6, uxtw] +ldrh w15, [x25, w7, uxtw] +ldrsh w16, [x24, w8, uxtw #1] +ldrh w17, [x23, w9, sxtw] +ldrh w18, [x22, w10, sxtw] +strh w19, [x21, wzr, sxtw #1] +ldr b25, [x21, w8, uxtw] +ldr b8, [x30, x10] +str b14, [x13, x25] +str b30, [x16, w26, uxtw] +ldr h3, [sp, x5] +ldr h9, [x27, x6] +ldr h10, [x30, x7, lsl #1] +str h11, [x29, x3, sxtx] +str h12, [x28, xzr, sxtx] +str h13, [x27, x5, sxtx #1] +ldr h14, [x26, w6, uxtw] +ldr h15, [x25, w7, uxtw] +ldr h16, [x24, w8, uxtw #1] +ldr h17, [x23, w9, sxtw] +str h18, [x22, w10, sxtw] +ldr h19, [x21, wzr, sxtw #1] +ldr s12, [x30, w5, uxtw] +ldr d24, [x26, w7, uxtw] +str s20, [x24, w10, uxtw] +str d5, [x26, x6] +ldr w3, [sp, x5] +ldr s9, [x27, x6] +ldr w10, [x30, x7, lsl #2] +ldr w11, [x29, x3, sxtx] +str s12, [x28, xzr, sxtx] +str w13, [x27, x5, sxtx #2] +str w14, [x26, w6, uxtw] +ldr w15, [x25, w7, uxtw] +ldr w16, [x24, w8, uxtw #2] +ldrsw x17, [x23, w9, sxtw] +ldr w18, [x22, w10, sxtw] +ldrsw x19, [x21, wzr, sxtw #2] +ldr x3, [sp, x5] +str x9, [x27, x6] +ldr d10, [x30, x7, lsl #3] +str x11, [x29, x3, sxtx] +ldr x12, [x28, xzr, sxtx] +ldr x13, [x27, x5, sxtx #3] +prfm pldl1keep, [x26, w6, uxtw] +ldr x15, [x25, w7, uxtw] +str x27, [x26, w24, uxtw] +ldr x16, [x24, w8, uxtw #3] +ldr x17, [x23, w9, sxtw] +ldr x18, [x22, w10, sxtw] +str d19, [x21, wzr, sxtw #3] +ldr q3, [sp, x5] +ldr q9, [x27, x6] +ldr q10, [x30, x7, lsl #4] +str q11, [x29, x3, sxtx] +str q12, [x28, xzr, sxtx] +str q13, [x27, x5, sxtx #4] +ldr q14, [x26, w6, uxtw] +ldr q15, [x25, w7, uxtw] +ldr q16, [x24, w8, uxtw #4] +ldr q17, [x23, w9, sxtw] +str q18, [x22, w10, sxtw] +ldr q19, [x21, wzr, sxtw #4] + +#------------------------------------------------------------------------------ +# Load/store register pair (offset) +#------------------------------------------------------------------------------ + +ldp w3, w5, [sp] +stp wzr, w9, [sp, #252] +ldp w2, wzr, [sp, #-256] +ldp w9, w10, [sp, #4] +ldpsw x9, x10, [sp, #4] +ldpsw x9, x10, [x2, #-256] +ldpsw x20, x30, [sp, #252] +ldp x21, x29, [x2, #504] +ldp x22, x23, [x3, #-512] +ldp x24, x25, [x4, #8] +ldp s29, s28, [sp, #252] +stp s27, s26, [sp, #-256] +ldp s1, s2, [x3, #44] +stp d3, d5, [x9, #504] +stp d7, d11, [x10, #-512] +stnp x20, x16, [x8] +stp x3, x6, [x16] +ldp d2, d3, [x30, #-8] +stp q3, q5, [sp] +stp q17, q19, [sp, #1008] +ldp q23, q29, [x1, #-1024] + +#------------------------------------------------------------------------------ +# Load/store register pair (post-indexed) +#------------------------------------------------------------------------------ + +ldp w3, w5, [sp], #0 +stp wzr, w9, [sp], #252 +ldp w2, wzr, [sp], #-256 +ldp w9, w10, [sp], #4 +ldpsw x9, x10, [sp], #4 +ldpsw x9, x10, [x2], #-256 +ldpsw x20, x30, [sp], #252 +ldp x21, x29, [x2], #504 +ldp x22, x23, [x3], #-512 +ldp x24, x25, [x4], #8 +ldp s29, s28, [sp], #252 +stp s27, s26, [sp], #-256 +ldp s1, s2, [x3], #44 +stp d3, d5, [x9], #504 +stp d7, d11, [x10], #-512 +ldp d2, d3, [x30], #-8 +stp q3, q5, [sp], #0 +stp q17, q19, [sp], #1008 +ldp q23, q29, [x1], #-1024 + +#------------------------------------------------------------------------------ +# Load/store register pair (pre-indexed) +#------------------------------------------------------------------------------ + +ldp w3, w5, [sp, #0]! +stp wzr, w9, [sp, #252]! +ldp w2, wzr, [sp, #-256]! +ldp w9, w10, [sp, #4]! +ldpsw x9, x10, [sp, #4]! +ldpsw x9, x10, [x2, #-256]! +ldpsw x20, x30, [sp, #252]! +ldp x21, x29, [x2, #504]! +ldp x22, x23, [x3, #-512]! +ldp x24, x25, [x4, #8]! +ldp s29, s28, [sp, #252]! +stp s27, s26, [sp, #-256]! +ldp s1, s2, [x3, #44]! +stp d3, d5, [x9, #504]! +stp d7, d11, [x10, #-512]! +ldp d2, d3, [x30, #-8]! +stp q3, q5, [sp, #0]! +stp q17, q19, [sp, #1008]! +ldp q23, q29, [x1, #-1024]! + +#------------------------------------------------------------------------------ +# Load/store register pair (offset) +#------------------------------------------------------------------------------ + +ldnp w3, w5, [sp] +stnp wzr, w9, [sp, #252] +ldnp w2, wzr, [sp, #-256] +ldnp w9, w10, [sp, #4] +ldnp x21, x29, [x2, #504] +ldnp x22, x23, [x3, #-512] +ldnp x24, x25, [x4, #8] +ldnp s29, s28, [sp, #252] +stnp s27, s26, [sp, #-256] +ldnp s1, s2, [x3, #44] +stnp d3, d5, [x9, #504] +stnp d7, d11, [x10, #-512] +ldnp d2, d3, [x30, #-8] +stnp q3, q5, [sp] +stnp q17, q19, [sp, #1008] +ldnp q23, q29, [x1, #-1024] + +#------------------------------------------------------------------------------ +# Logical (immediate) +#------------------------------------------------------------------------------ + +and wsp, w16, #0xe00 +and x2, x22, #0x1e00 +ands w14, w8, #0x70 +ands x4, x10, #0x60 +eor wsp, w4, #0xe00 +eor x27, x25, #0x1e00 +mov w3, #983055 +mov x10, #-6148914691236517206 + +#------------------------------------------------------------------------------ +# Logical (shifted register) +#------------------------------------------------------------------------------ + +and w12, w23, w21 +and w16, w15, w1, lsl #1 +and w9, w4, w10, lsl #31 +and w3, w30, w11 +and x3, x5, x7, lsl #63 +and x5, x14, x19, asr #4 +and w3, w17, w19, ror #31 +and w0, w2, wzr, lsr #17 +and w3, w30, w11, asr #2 +and xzr, x4, x26 +and w3, wzr, w20, ror #2 +and x7, x20, xzr, asr #63 +bic x13, x20, x14, lsl #47 +bic w2, w7, w9 +eon w29, w4, w19 +eon x19, x12, x2 +eor w8, w27, w2 +eor x22, x16, x6 +orr w2, w7, w0, asr #31 +orr x8, x9, x10, lsl #12 +orn x3, x5, x7, asr #2 +orn w2, w5, w29 +ands w7, wzr, w9, lsl #1 +ands x3, x5, x20, ror #63 +bics w3, w5, w7 +bics x3, xzr, x3, lsl #1 +tst w3, w7, lsl #31 +tst x2, x20, asr #2 +mov x3, x6 +mov x3, xzr +mov wzr, w2 +mov w3, w5 + +#------------------------------------------------------------------------------ +# Move wide (immediate) +#------------------------------------------------------------------------------ + +movz w2, #0, lsl #16 +mov w2, #-1235 +mov x2, #5299989643264 +mov x2, #0 +movk w3, #0 +movz x4, #0, lsl #16 +movk w5, #0, lsl #16 +movz x6, #0, lsl #32 +movk x7, #0, lsl #32 +movz x8, #0, lsl #48 +movk x9, #0, lsl #48 + +#------------------------------------------------------------------------------ +# Move immediate to Special Register +#------------------------------------------------------------------------------ + +msr DAIFSet, #0 + +#------------------------------------------------------------------------------ +# PC-relative addressing +#------------------------------------------------------------------------------ + +adr x2, #1600 +adrp x21, #6553600 +adr x0, #262144 + +#------------------------------------------------------------------------------ +# Test and branch (immediate) +#------------------------------------------------------------------------------ + +tbz x12, #62, #0 +tbz x12, #62, #4 +tbz x12, #62, #-32768 +tbz w17, #16, test +tbnz x12, #60, #32764 +tbnz w3, #28, test + +#------------------------------------------------------------------------------ +# Unconditional branch (immediate) +#------------------------------------------------------------------------------ + +b #4 +b #-4 +b #134217724 +bl test + +#------------------------------------------------------------------------------ +# Unconditional branch (register) +#------------------------------------------------------------------------------ + +br x20 +blr xzr +ret x10 +ret +eret +drps diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s new file mode 100644 index 0000000000000..d1cfada0c9607 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s @@ -0,0 +1,105 @@ +irg x0, x1 +irg sp, x1 +irg x0, sp +irg x0, x1, x2 +irg sp, x1, x2 +addg x0, x1, #0, #1 +addg sp, x2, #32, #3 +addg x0, sp, #64, #5 +addg x3, x4, #1008, #6 +addg x5, x6, #112, #15 +subg x0, x1, #0, #1 +subg sp, x2, #32, #3 +subg x0, sp, #64, #5 +subg x3, x4, #1008, #6 +subg x5, x6, #112, #15 +gmi x0, x1, x2 +gmi x3, sp, x4 +gmi xzr, x0, x30 +gmi x30, x0, xzr +subp x0, x1, x2 +subps x0, x1, x2 +subp x0, sp, sp +subps x0, sp, sp +subps xzr, x0, x1 +subps xzr, sp, sp +stg x0, [x1, #-4096] +stg x1, [x2, #4080] +stg x2, [sp, #16] +stg x3, [x1] +stg sp, [x1] +stzg x0, [x1, #-4096] +stzg x1, [x2, #4080] +stzg x2, [sp, #16] +stzg x3, [x1] +stzg sp, [x1] +stg x0, [x1, #-4096]! +stg x1, [x2, #4080]! +stg x2, [sp, #16]! +stg sp, [sp, #16]! +stzg x0, [x1, #-4096]! +stzg x1, [x2, #4080]! +stzg x2, [sp, #16]! +stzg sp, [sp, #16]! +stg x0, [x1], #-4096 +stg x1, [x2], #4080 +stg x2, [sp], #16 +stg sp, [sp], #16 +stzg x0, [x1], #-4096 +stzg x1, [x2], #4080 +stzg x2, [sp], #16 +stzg sp, [sp], #16 +st2g x0, [x1, #-4096] +st2g x1, [x2, #4080] +st2g x2, [sp, #16] +st2g x3, [x1] +st2g sp, [x1] +stz2g x0, [x1, #-4096] +stz2g x1, [x2, #4080] +stz2g x2, [sp, #16] +stz2g x3, [x1] +stz2g sp, [x1] +st2g x0, [x1, #-4096]! +st2g x1, [x2, #4080]! +st2g x2, [sp, #16]! +st2g sp, [sp, #16]! +stz2g x0, [x1, #-4096]! +stz2g x1, [x2, #4080]! +stz2g x2, [sp, #16]! +stz2g sp, [sp, #16]! +st2g x0, [x1], #-4096 +st2g x1, [x2], #4080 +st2g x2, [sp], #16 +st2g sp, [sp], #16 +stz2g x0, [x1], #-4096 +stz2g x1, [x2], #4080 +stz2g x2, [sp], #16 +stz2g sp, [sp], #16 +stgp x0, x1, [x2, #-1024] +stgp x0, x1, [x2, #1008] +stgp x0, x1, [sp, #16] +stgp xzr, x1, [x2, #16] +stgp x0, xzr, [x2, #16] +stgp x0, xzr, [x2] +stgp x0, x1, [x2, #-1024]! +stgp x0, x1, [x2, #1008]! +stgp x0, x1, [sp, #16]! +stgp xzr, x1, [x2, #16]! +stgp x0, xzr, [x2, #16]! +stgp x0, x1, [x2], #-1024 +stgp x0, x1, [x2], #1008 +stgp x0, x1, [sp], #16 +stgp xzr, x1, [x2], #16 +stgp x0, xzr, [x2], #16 +ldg x0, [x1] +ldg x2, [sp, #-4096] +ldg x3, [x4, #4080] +ldgm x0, [x1] +ldgm x1, [sp] +ldgm xzr, [x2] +stgm x0, [x1] +stgm x1, [sp] +stgm xzr, [x2] +stzgm x0, [x1] +stzgm x1, [sp] +stzgm xzr, [x2] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s new file mode 100644 index 0000000000000..3e669d885d1b8 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +# Load-acquire/store-release +#------------------------------------------------------------------------------ + +ldapur w7, [x24] +ldapur x20, [x13] +ldapurb w13, [x17] +ldapurh w3, [x22] +ldapursb w7, [x8] +ldapursb x29, [x7] +ldapursh w17, [x19] +ldapursh x3, [x3] +ldapursw x3, [x18] +stlur w3, [x27] +stlur x23, [x25] +stlurb w30, [x17] +stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s index 72a88daafe8d7..0a36c14e43955 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s @@ -1,1372 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n1 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n1 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1396,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.33 cmn w2, #4095 # CHECK-NEXT: 1 1 0.33 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.33 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.33 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.33 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.33 cmp x30, #4095 # CHECK-NEXT: 1 1 0.33 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.33 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.33 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.33 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.33 mov sp, x30 -# CHECK-NEXT: 1 1 0.33 mov wsp, w20 -# CHECK-NEXT: 1 1 0.33 mov x11, sp -# CHECK-NEXT: 1 1 0.33 mov w24, wsp +# CHECK-NEXT: 1 1 0.33 mov x10, #-63432 +# CHECK-NEXT: 1 2 1.00 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 1.00 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.33 add w3, w5, w7 # CHECK-NEXT: 1 1 0.33 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.33 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.33 add w4, w6, wzr # CHECK-NEXT: 1 1 0.33 add w11, w13, w15 -# CHECK-NEXT: 1 2 1.00 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 1.00 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 1.00 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 1.00 add w24, w25, w26, lsr #18 @@ -1425,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.33 add x4, x6, xzr # CHECK-NEXT: 1 1 0.33 add x11, x13, x15 # CHECK-NEXT: 1 2 1.00 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 1.00 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 1.00 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 1.00 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 1.00 add x27, x28, x29, lsr #63 @@ -1433,11 +66,13 @@ drps # CHECK-NEXT: 1 2 1.00 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 1.00 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.33 adds w3, w5, w7 +# CHECK-NEXT: 1 2 1.00 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 1.00 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.33 cmn w3, w5 # CHECK-NEXT: 1 1 0.33 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.33 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.33 adds w11, w13, w15 -# CHECK-NEXT: 1 2 1.00 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 1.00 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 1.00 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 1.00 adds w24, w25, w26, lsr #18 @@ -1451,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.33 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.33 adds x11, x13, x15 # CHECK-NEXT: 1 2 1.00 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 1.00 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 1.00 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 1.00 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 1.00 adds x27, x28, x29, lsr #63 @@ -1462,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.33 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.33 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.33 sub w11, w13, w15 -# CHECK-NEXT: 1 2 1.00 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 1.00 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 1.00 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 1.00 sub w24, w25, w26, lsr #18 @@ -1475,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.33 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.33 sub x11, x13, x15 # CHECK-NEXT: 1 2 1.00 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 1.00 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 1.00 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 1.00 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 1.00 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 1.00 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 1.00 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 1.00 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 1.00 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 1.00 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 1.00 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.33 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.33 cmp w3, w5 # CHECK-NEXT: 1 1 0.33 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.33 subs w11, w13, w15 -# CHECK-NEXT: 1 2 1.00 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 1.00 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 1.00 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 1.00 subs w24, w25, w26, lsr #18 @@ -1499,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.33 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.33 subs x11, x13, x15 # CHECK-NEXT: 1 2 1.00 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 1.00 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 1.00 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 1.00 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 1.00 subs x27, x28, x29, lsr #63 @@ -1509,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.33 cmn wzr, w4 # CHECK-NEXT: 1 1 0.33 cmn w5, wzr # CHECK-NEXT: 1 1 0.33 cmn w6, w7 -# CHECK-NEXT: 1 2 1.00 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.33 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 1.00 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 1.00 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 1.00 cmn w14, w15, lsr #21 @@ -1522,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.33 cmn x5, xzr # CHECK-NEXT: 1 1 0.33 cmn x6, x7 # CHECK-NEXT: 1 2 1.00 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 1.00 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.33 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 1.00 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 1.00 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 1.00 cmn x16, x17, lsr #63 @@ -1533,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.33 cmp wzr, w4 # CHECK-NEXT: 1 1 0.33 cmp w5, wzr # CHECK-NEXT: 1 1 0.33 cmp w6, w7 -# CHECK-NEXT: 1 2 1.00 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.33 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 1.00 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 1.00 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 1.00 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 1.00 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 1.00 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 1.00 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 1.00 cmp wsp, w26 +# CHECK-NEXT: 1 2 1.00 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.33 cmp x0, x3 # CHECK-NEXT: 1 1 0.33 cmp xzr, x4 # CHECK-NEXT: 1 1 0.33 cmp x5, xzr # CHECK-NEXT: 1 1 0.33 cmp x6, x7 # CHECK-NEXT: 1 2 1.00 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 1.00 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.33 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 1.00 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 1.00 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 1.00 cmp x16, x17, lsr #63 @@ -1554,6 +194,10 @@ drps # CHECK-NEXT: 1 2 1.00 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.33 cmp wzr, w0 # CHECK-NEXT: 1 1 0.33 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.33 mov sp, x30 +# CHECK-NEXT: 1 1 0.33 mov wsp, w20 +# CHECK-NEXT: 1 1 0.33 mov x11, sp +# CHECK-NEXT: 1 1 0.33 mov w24, wsp # CHECK-NEXT: 1 1 0.33 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.33 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.33 adc w9, wzr, w10 @@ -1626,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.33 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.33 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.33 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.33 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.33 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.33 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.33 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.33 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.33 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.33 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.33 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.33 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.33 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.33 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.33 sbfiz xzr, xzr, #10, #11 @@ -1646,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.33 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.33 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.33 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 2 1.00 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 2 1.00 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 2 1.00 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 2 1.00 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 2 1.00 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 2 1.00 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 2 1.00 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 2 1.00 bfc xzr, #10, #11 @@ -1662,11 +299,8 @@ drps # CHECK-NEXT: 1 2 1.00 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 2 1.00 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 2 1.00 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.33 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.33 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.33 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.33 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.33 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.33 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.33 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.33 ubfiz xzr, xzr, #10, #11 @@ -1684,6 +318,7 @@ drps # CHECK-NEXT: 1 1 1.00 cbnz x26, #1048572 # CHECK-NEXT: 1 1 1.00 cbz wzr, #0 # CHECK-NEXT: 1 1 1.00 cbnz xzr, #0 +# CHECK-NEXT: 1 1 1.00 cbnz w21, test # CHECK-NEXT: 1 1 1.00 b.ne #4 # CHECK-NEXT: 1 1 1.00 b.ge #1048572 # CHECK-NEXT: 1 1 1.00 b.ge #-4 @@ -1772,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.33 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.33 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.33 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.33 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.33 rbit w0, w7 # CHECK-NEXT: 1 1 0.33 rbit x18, x3 # CHECK-NEXT: 1 1 0.33 rev16 w17, w1 @@ -1804,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.33 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.33 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.33 ror x27, x28, x29 +# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 5 3.00 smulh x30, x29, x28 # CHECK-NEXT: 1 5 3.00 smulh xzr, x27, x26 # CHECK-NEXT: 1 5 3.00 umulh x30, x29, x28 @@ -1846,7 +490,6 @@ drps # CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 1.00 umnegl x19, w20, w21 -# CHECK-NEXT: 1 5 3.00 smulh x30, x29, x28 # CHECK-NEXT: 1 5 3.00 smulh x23, x22, xzr # CHECK-NEXT: 1 5 3.00 umulh x23, x22, xzr # CHECK-NEXT: 1 4 3.00 mul x19, x20, xzr @@ -1862,24 +505,26 @@ drps # CHECK-NEXT: 1 1 0.33 ror x19, x23, #24 # CHECK-NEXT: 1 1 0.33 ror x29, xzr, #63 # CHECK-NEXT: 1 1 0.33 ror w9, w13, #31 +# CHECK-NEXT: 1 2 1.00 fcmp h5, h21 +# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21 +# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp s3, s5 # CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe s29, s30 # CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp d4, d12 # CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe d26, d22 # CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs @@ -1888,22 +533,33 @@ drps # CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.50 fmov h18, h28 # CHECK-NEXT: 1 2 0.50 fmov s0, s1 # CHECK-NEXT: 1 2 0.50 fabs s2, s3 +# CHECK-NEXT: 1 2 0.50 fneg h2, h9 # CHECK-NEXT: 1 2 0.50 fneg s4, s5 # CHECK-NEXT: 1 10 7.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 0.50 fcvt d8, s9 # CHECK-NEXT: 1 3 0.50 fcvt h10, s11 +# CHECK-NEXT: 1 3 1.00 frintn h12, h3 # CHECK-NEXT: 1 3 1.00 frintn s12, s13 +# CHECK-NEXT: 1 3 1.00 frintp h17, h31 # CHECK-NEXT: 1 3 1.00 frintp s14, s15 +# CHECK-NEXT: 1 3 1.00 frintm h0, h21 # CHECK-NEXT: 1 3 1.00 frintm s16, s17 +# CHECK-NEXT: 1 3 1.00 frintz h10, h29 # CHECK-NEXT: 1 3 1.00 frintz s18, s19 +# CHECK-NEXT: 1 3 1.00 frinta h22, h10 # CHECK-NEXT: 1 3 1.00 frinta s20, s21 +# CHECK-NEXT: 1 3 1.00 frintx h4, h5 # CHECK-NEXT: 1 3 1.00 frintx s22, s23 # CHECK-NEXT: 1 3 1.00 frinti s24, s25 +# CHECK-NEXT: 1 3 1.00 frinti h31, h14 # CHECK-NEXT: 1 2 0.50 fmov d0, d1 # CHECK-NEXT: 1 2 0.50 fabs d2, d3 # CHECK-NEXT: 1 2 0.50 fneg d4, d5 +# CHECK-NEXT: 1 7 7.00 fsqrt h13, h24 # CHECK-NEXT: 1 17 7.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 0.50 fcvt s8, d9 # CHECK-NEXT: 1 3 0.50 fcvt h10, d11 @@ -1917,13 +573,19 @@ drps # CHECK-NEXT: 1 3 0.50 fcvt s26, h27 # CHECK-NEXT: 1 3 0.50 fcvt d28, h29 # CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17 +# CHECK-NEXT: 1 7 7.00 fdiv h1, h26, h23 # CHECK-NEXT: 1 10 7.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17 # CHECK-NEXT: 1 15 7.00 fdiv d1, d2, d3 @@ -1931,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 0.50 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 0.50 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 0.50 fcvtzs w19, h0, #32 @@ -2086,12 +754,17 @@ drps # CHECK-NEXT: 2 4 1.00 fcvtas x27, d28 # CHECK-NEXT: 2 4 1.00 fcvtau w29, d30 # CHECK-NEXT: 2 4 1.00 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 1.00 fmov h6, w5 +# CHECK-NEXT: 1 3 1.00 fmov h16, x27 +# CHECK-NEXT: 1 2 1.00 fmov w15, h31 # CHECK-NEXT: 1 2 1.00 fmov w3, s9 # CHECK-NEXT: 1 3 1.00 fmov s9, w3 +# CHECK-NEXT: 1 2 1.00 fmov x21, h14 # CHECK-NEXT: 1 2 1.00 fmov x20, d31 # CHECK-NEXT: 1 3 1.00 fmov d1, x15 # CHECK-NEXT: 1 2 1.00 fmov x3, v12.d[1] # CHECK-NEXT: 1 3 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000 @@ -2115,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.50 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.50 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 1.00 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 1.00 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 2 4 1.00 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 2 4 1.00 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 2 4 1.00 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 1.00 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 1.00 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 1.00 * * U stlxr w9, w2, [x2] @@ -2130,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.50 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.50 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 1.00 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 1.00 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 1.00 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 1.00 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 4 1.00 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.50 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.50 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.50 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.50 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2334,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.50 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.50 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.50 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 1 4 0.50 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.50 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.50 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.50 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.50 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 1 4 0.50 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.50 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.50 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.50 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.50 * ldrsb xzr, [x15] +# CHECK-NEXT: 1 4 0.50 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2352,11 +1023,13 @@ drps # CHECK-NEXT: 2 5 0.50 * ldr s10, [x19, #16380] # CHECK-NEXT: 2 5 0.50 * ldr d3, [x10, #32760] # CHECK-NEXT: 4 2 1.00 * str q12, [sp, #65520] +# CHECK-NEXT: 2 5 0.50 * ldr q14, [x6, #4624] # CHECK-NEXT: 1 4 0.50 * ldrb w3, [sp, x5] # CHECK-NEXT: 1 4 0.50 * ldrb w9, [x27, x6] # CHECK-NEXT: 1 4 0.50 * ldrsb w10, [x30, x7] # CHECK-NEXT: 1 4 0.50 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 1 4 0.50 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.50 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 1 4 0.50 * ldrb w17, [x23, w9, sxtw] @@ -2373,6 +1046,26 @@ drps # CHECK-NEXT: 1 4 0.50 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.50 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 2 5 0.50 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 2 5 0.50 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 2 6 0.50 * ldr h3, [sp, x5] +# CHECK-NEXT: 2 6 0.50 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 6 0.50 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 3 7 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 3 7 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 7 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 2 6 0.50 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 2 6 0.50 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 6 0.50 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 2 6 0.50 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 3 7 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 6 0.50 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 2 5 0.50 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 2 5 0.50 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 1 4 0.50 * ldr w3, [sp, x5] # CHECK-NEXT: 2 5 0.50 * ldr s9, [x27, x6] # CHECK-NEXT: 1 4 0.50 * ldr w10, [x30, x7, lsl #2] @@ -2393,6 +1086,7 @@ drps # CHECK-NEXT: 1 4 0.50 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.50 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.50 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 1 4 0.50 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 1 4 0.50 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.50 * ldr x18, [x22, w10, sxtw] @@ -2424,6 +1118,8 @@ drps # CHECK-NEXT: 3 5 1.00 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 4 2 1.00 * stp d3, d5, [x9, #504] # CHECK-NEXT: 4 2 1.00 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 3 1 1.00 * stnp x20, x16, [x8] +# CHECK-NEXT: 3 1 1.00 * stp x3, x6, [x16] # CHECK-NEXT: 3 5 1.00 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 6 3 2.00 * stp q3, q5, [sp] # CHECK-NEXT: 6 3 2.00 * stp q17, q19, [sp, #1008] @@ -2482,6 +1178,12 @@ drps # CHECK-NEXT: 6 3 2.00 * stnp q3, q5, [sp] # CHECK-NEXT: 6 3 2.00 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 2 4 1.00 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.33 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.33 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.33 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.33 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.33 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.33 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.33 mov w3, #983055 # CHECK-NEXT: 1 1 0.33 mov x10, #-6148914691236517206 # CHECK-NEXT: 1 1 0.33 and w12, w23, w21 @@ -2498,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.33 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.33 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.33 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.33 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.33 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.33 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.33 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.33 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.33 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.33 orn x3, x5, x7, asr #2 @@ -2523,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.33 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.33 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.33 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.33 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.33 adr x2, #1600 # CHECK-NEXT: 1 1 0.33 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.33 adr x0, #262144 # CHECK-NEXT: 1 1 1.00 tbz x12, #62, #0 # CHECK-NEXT: 1 1 1.00 tbz x12, #62, #4 # CHECK-NEXT: 1 1 1.00 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 1.00 tbz w17, #16, test # CHECK-NEXT: 1 1 1.00 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 1.00 tbnz w3, #28, test # CHECK-NEXT: 1 1 1.00 b #4 # CHECK-NEXT: 1 1 1.00 b #-4 # CHECK-NEXT: 1 1 1.00 b #134217724 +# CHECK-NEXT: 2 1 1.00 bl test # CHECK-NEXT: 1 1 1.00 br x20 # CHECK-NEXT: 2 1 1.00 blr xzr # CHECK-NEXT: 1 1 1.00 U ret x10 @@ -2554,7 +1264,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1.0] [1.1] [2.0] [2.1] [3] [4.0] [4.1] [5] [6] -# CHECK-NEXT: 22.00 33.00 33.00 241.00 241.00 469.00 186.00 186.00 256.50 145.50 +# CHECK-NEXT: 26.00 34.00 34.00 252.50 252.50 483.33 197.33 197.33 293.00 161.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1.0] [1.1] [2.0] [2.1] [3] [4.0] [4.1] [5] [6] Instructions: @@ -2577,22 +1287,22 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w2, #4095 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w20, wsp, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wsp, #2342 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x30, #4095 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x4, sp, #3822 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn wsp, #1365 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov sp, x30 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov wsp, w20 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x11, sp -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w24, wsp +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x10, #-63432 +# CHECK-NEXT: - - - - - 1.00 - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - 1.00 - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w3, w5, w7 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add wzr, w3, w5 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w20, wzr, w4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w4, w6, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w11, w13, w15 -# CHECK-NEXT: - - - - - 1.00 - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - add w24, w25, w26, lsr #18 @@ -2606,7 +1316,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x4, x6, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x11, x13, x15 # CHECK-NEXT: - - - - - 1.00 - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 1.00 - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 1.00 - - - - add x27, x28, x29, lsr #63 @@ -2614,11 +1324,13 @@ drps # CHECK-NEXT: - - - - - 1.00 - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - 1.00 - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - 1.00 - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - 1.00 - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w3, w5 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w20, wzr, w4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w4, w6, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w11, w13, w15 -# CHECK-NEXT: - - - - - 1.00 - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - adds w24, w25, w26, lsr #18 @@ -2632,7 +1344,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x4, x6, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x11, x13, x15 # CHECK-NEXT: - - - - - 1.00 - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 1.00 - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 1.00 - - - - adds x27, x28, x29, lsr #63 @@ -2643,7 +1355,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w4, w6, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - 1.00 - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - sub w24, w25, w26, lsr #18 @@ -2656,18 +1368,21 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x4, x6, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x11, x13, x15 # CHECK-NEXT: - - - - - 1.00 - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 1.00 - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 1.00 - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - 1.00 - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - 1.00 - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - 1.00 - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - 1.00 - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - 1.00 - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - 1.00 - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w3, w5, w7 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w3, w5 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w4, w6, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w11, w13, w15 -# CHECK-NEXT: - - - - - 1.00 - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - subs w24, w25, w26, lsr #18 @@ -2680,7 +1395,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x4, x6, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x11, x13, x15 # CHECK-NEXT: - - - - - 1.00 - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 1.00 - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 1.00 - - - - subs x27, x28, x29, lsr #63 @@ -2690,7 +1405,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn wzr, w4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w5, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w6, w7 -# CHECK-NEXT: - - - - - 1.00 - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - cmn w14, w15, lsr #21 @@ -2703,7 +1418,7 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x5, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x6, x7 # CHECK-NEXT: - - - - - 1.00 - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 1.00 - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - - 1.00 - - - - cmn x16, x17, lsr #63 @@ -2714,19 +1429,21 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wzr, w4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w5, wzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w6, w7 -# CHECK-NEXT: - - - - - 1.00 - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - - 1.00 - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - 1.00 - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - 1.00 - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x0, x3 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp xzr, x4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x5, xzr # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x6, x7 # CHECK-NEXT: - - - - - 1.00 - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 1.00 - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - - 1.00 - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - - 1.00 - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - - 1.00 - - - - cmp x16, x17, lsr #63 @@ -2735,6 +1452,10 @@ drps # CHECK-NEXT: - - - - - 1.00 - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wzr, w0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp xzr, x0 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov sp, x30 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov wsp, w20 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x11, sp +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w24, wsp # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc w29, w27, w25 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc w9, wzr, w10 @@ -2807,15 +1528,11 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr x19, x20, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w9, w10, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz xzr, xzr, #10, #11 @@ -2827,11 +1544,8 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w11, w12, #31 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w13, w14, #29 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - 1.00 - - - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - 1.00 - - - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - 1.00 - - - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - 1.00 - - - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - 1.00 - - - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - 1.00 - - - - bfc xzr, #10, #11 @@ -2843,11 +1557,8 @@ drps # CHECK-NEXT: - - - - - 1.00 - - - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - 1.00 - - - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - 1.00 - - - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ubfiz xzr, xzr, #10, #11 @@ -2865,6 +1576,7 @@ drps # CHECK-NEXT: 1.00 - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 1.00 - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 1.00 - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 1.00 - - - - - - - - - cbnz w21, test # CHECK-NEXT: 1.00 - - - - - - - - - b.ne #4 # CHECK-NEXT: 1.00 - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 1.00 - - - - - - - - - b.ge #-4 @@ -2953,7 +1665,6 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cneg xzr, x4, le # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rbit w0, w7 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rbit x18, x3 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rev16 w17, w1 @@ -2985,6 +1696,16 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr x21, x22, x23 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror w24, w25, w26 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - 1.00 - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - 3.00 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - 3.00 - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - 3.00 - - - - umulh x30, x29, x28 @@ -3027,7 +1748,6 @@ drps # CHECK-NEXT: - - - - - 1.00 - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - 1.00 - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - 1.00 - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - 3.00 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - 3.00 - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - 3.00 - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - 3.00 - - - - mul x19, x20, xzr @@ -3043,24 +1763,26 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x19, x23, #24 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - 1.00 - fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - 1.00 - fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - 1.00 - fcmp s3, s5 # CHECK-NEXT: - - - - - - - - 1.00 - fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - 1.00 - fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - 1.00 - fcmp d4, d12 # CHECK-NEXT: - - - - - - - - 1.00 - fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - 1.00 - fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - 1.00 - fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - 1.00 - fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - 1.00 - fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - 1.00 - fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - 1.00 - fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - 1.00 - fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - 1.00 - fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs @@ -3069,22 +1791,33 @@ drps # CHECK-NEXT: - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov h18, h28 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s0, s1 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg h2, h9 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg s4, s5 # CHECK-NEXT: - - - - - - - - 7.00 - fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt d8, s9 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - 1.00 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - 1.00 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - 1.00 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - 1.00 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - 1.00 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - 1.00 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - 1.00 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - 1.00 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - 1.00 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - 1.00 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - 1.00 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - 1.00 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - 1.00 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - 1.00 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov d0, d1 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fabs d2, d3 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - 7.00 - fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - 7.00 - fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt s8, d9 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt h10, d11 @@ -3098,13 +1831,19 @@ drps # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt s26, h27 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt d28, h29 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - 7.00 - fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - 7.00 - fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - 7.00 - fdiv d1, d2, d3 @@ -3112,17 +1851,23 @@ drps # CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs w19, h0, #32 @@ -3267,12 +2012,17 @@ drps # CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtau xzr, d0 +# CHECK-NEXT: - - - - - 1.00 - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - 1.00 - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - 1.00 fmov w15, h31 # CHECK-NEXT: - - - - - - - - - 1.00 fmov w3, s9 # CHECK-NEXT: - - - - - 1.00 - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - 1.00 fmov x21, h14 # CHECK-NEXT: - - - - - - - - - 1.00 fmov x20, d31 # CHECK-NEXT: - - - - - 1.00 - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - 1.00 fmov x3, v12.d[1] # CHECK-NEXT: - - - - - 1.00 - - - - fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov d30, #16.00000000 @@ -3296,13 +2046,10 @@ drps # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxrb w12, w22, [x0] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxrh w10, w1, [x1] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxr w9, w2, [x2] @@ -3311,25 +2058,19 @@ drps # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlrb w24, [sp] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlrh w25, [x30] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr w26, [x29] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28] -# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28] -# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - sturb w9, [sp] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - sturh wzr, [x12, #255] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stur w16, [x0, #-256] @@ -3515,16 +2256,23 @@ drps # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb x12, [x28, x27] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str x30, [sp] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str w20, [x4, #16380] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b5, [x11] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str h23, [x15] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str s25, [x19] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str d15, [x2] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strh w17, [sp, #8190] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb w23, [x3, #4095] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb wzr, [x2] @@ -3533,11 +2281,13 @@ drps # CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 str q12, [sp, #65520] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w17, [x23, w9, sxtw] @@ -3554,6 +2304,26 @@ drps # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b14, [x13, x25] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str d5, [x26, x6] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr w3, [sp, x5] # CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s9, [x27, x6] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr w10, [x30, x7, lsl #2] @@ -3574,6 +2344,7 @@ drps # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - 0.50 0.50 - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x18, [x22, w10, sxtw] @@ -3605,6 +2376,8 @@ drps # CHECK-NEXT: - - - 1.00 1.00 0.33 0.33 0.33 - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 stp d3, d5, [x9, #504] # CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 stp d7, d11, [x10, #-512] +# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stnp x20, x16, [x8] +# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stp x3, x6, [x16] # CHECK-NEXT: - - - 1.00 1.00 0.33 0.33 0.33 - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stp q3, q5, [sp] # CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stp q17, q19, [sp, #1008] @@ -3663,6 +2436,12 @@ drps # CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stnp q3, q5, [sp] # CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - 1.00 1.00 - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w3, #983055 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x10, #-6148914691236517206 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and w12, w23, w21 @@ -3679,6 +2458,10 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor x22, x16, x6 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orn x3, x5, x7, asr #2 @@ -3704,16 +2487,20 @@ drps # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - - - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adr x2, #1600 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adrp x21, #6553600 # CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adr x0, #262144 # CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 1.00 - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 1.00 - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 1.00 - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 1.00 - - - - - - - - - b #4 # CHECK-NEXT: 1.00 - - - - - - - - - b #-4 # CHECK-NEXT: 1.00 - - - - - - - - - b #134217724 +# CHECK-NEXT: 1.00 - - - - 0.33 0.33 0.33 - - bl test # CHECK-NEXT: 1.00 - - - - - - - - - br x20 # CHECK-NEXT: 1.00 - - - - 0.33 0.33 0.33 - - blr xzr # CHECK-NEXT: 1.00 - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s index f6ea4c4769c0a..18c853c2427a6 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s @@ -1,1372 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1396,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.25 cmn w2, #4095 # CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.25 cmp x30, #4095 # CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.25 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.25 mov sp, x30 -# CHECK-NEXT: 1 1 0.25 mov wsp, w20 -# CHECK-NEXT: 1 1 0.25 mov x11, sp -# CHECK-NEXT: 1 1 0.25 mov w24, wsp +# CHECK-NEXT: 1 1 0.25 mov x10, #-63432 +# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.25 add w3, w5, w7 # CHECK-NEXT: 1 1 0.25 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.25 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 add w4, w6, wzr # CHECK-NEXT: 1 1 0.25 add w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18 @@ -1425,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.25 add x4, x6, xzr # CHECK-NEXT: 1 1 0.25 add x11, x13, x15 # CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63 @@ -1433,11 +66,13 @@ drps # CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.25 adds w3, w5, w7 +# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.25 cmn w3, w5 # CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.25 adds w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18 @@ -1451,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.25 adds x11, x13, x15 # CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63 @@ -1462,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.25 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.25 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.25 sub w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18 @@ -1475,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.25 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.25 sub x11, x13, x15 # CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.25 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.25 cmp w3, w5 # CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.25 subs w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18 @@ -1499,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.25 subs x11, x13, x15 # CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63 @@ -1509,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn wzr, w4 # CHECK-NEXT: 1 1 0.25 cmn w5, wzr # CHECK-NEXT: 1 1 0.25 cmn w6, w7 -# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21 @@ -1522,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn x5, xzr # CHECK-NEXT: 1 1 0.25 cmn x6, x7 # CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63 @@ -1533,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.25 cmp wzr, w4 # CHECK-NEXT: 1 1 0.25 cmp w5, wzr # CHECK-NEXT: 1 1 0.25 cmp w6, w7 -# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 0.50 cmp wsp, w26 +# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.25 cmp x0, x3 # CHECK-NEXT: 1 1 0.25 cmp xzr, x4 # CHECK-NEXT: 1 1 0.25 cmp x5, xzr # CHECK-NEXT: 1 1 0.25 cmp x6, x7 # CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63 @@ -1554,6 +194,10 @@ drps # CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.25 cmp wzr, w0 # CHECK-NEXT: 1 1 0.25 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.25 mov sp, x30 +# CHECK-NEXT: 1 1 0.25 mov wsp, w20 +# CHECK-NEXT: 1 1 0.25 mov x11, sp +# CHECK-NEXT: 1 1 0.25 mov w24, wsp # CHECK-NEXT: 1 1 0.25 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.25 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.25 adc w9, wzr, w10 @@ -1626,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.25 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.25 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.25 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.25 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.25 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.25 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.25 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.25 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.25 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.25 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.25 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.25 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.25 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.25 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.25 sbfiz xzr, xzr, #10, #11 @@ -1646,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.25 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.25 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.25 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11 @@ -1662,11 +299,8 @@ drps # CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.25 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.25 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.25 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.25 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.25 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.25 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.25 ubfiz xzr, xzr, #10, #11 @@ -1684,6 +318,7 @@ drps # CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572 # CHECK-NEXT: 1 1 0.50 cbz wzr, #0 # CHECK-NEXT: 1 1 0.50 cbnz xzr, #0 +# CHECK-NEXT: 1 1 0.50 cbnz w21, test # CHECK-NEXT: 1 1 0.50 b.ne #4 # CHECK-NEXT: 1 1 0.50 b.ge #1048572 # CHECK-NEXT: 1 1 0.50 b.ge #-4 @@ -1772,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.25 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.25 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.25 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.25 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.25 rbit w0, w7 # CHECK-NEXT: 1 1 0.25 rbit x18, x3 # CHECK-NEXT: 1 1 0.25 rev16 w17, w1 @@ -1804,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.25 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.25 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.25 ror x27, x28, x29 +# CHECK-NEXT: 1 2 2.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 2.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 2.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 2.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 2.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 2.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 2.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 2.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 2.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 2.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26 # CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28 @@ -1846,7 +490,6 @@ drps # CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21 -# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr # CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr # CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr @@ -1862,24 +505,26 @@ drps # CHECK-NEXT: 2 3 0.50 ror x19, x23, #24 # CHECK-NEXT: 2 3 0.50 ror x29, xzr, #63 # CHECK-NEXT: 2 3 0.50 ror w9, w13, #31 +# CHECK-NEXT: 1 2 1.00 fcmp h5, h21 +# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21 +# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp s3, s5 # CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe s29, s30 # CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp d4, d12 # CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe d26, d22 # CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs @@ -1888,22 +533,33 @@ drps # CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.50 fmov h18, h28 # CHECK-NEXT: 1 2 0.50 fmov s0, s1 # CHECK-NEXT: 1 2 0.50 fabs s2, s3 +# CHECK-NEXT: 1 2 0.50 fneg h2, h9 # CHECK-NEXT: 1 2 0.50 fneg s4, s5 # CHECK-NEXT: 9 9 9.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 1.00 fcvt d8, s9 # CHECK-NEXT: 1 3 1.00 fcvt h10, s11 +# CHECK-NEXT: 1 3 1.00 frintn h12, h3 # CHECK-NEXT: 1 3 1.00 frintn s12, s13 +# CHECK-NEXT: 1 3 1.00 frintp h17, h31 # CHECK-NEXT: 1 3 1.00 frintp s14, s15 +# CHECK-NEXT: 1 3 1.00 frintm h0, h21 # CHECK-NEXT: 1 3 1.00 frintm s16, s17 +# CHECK-NEXT: 1 3 1.00 frintz h10, h29 # CHECK-NEXT: 1 3 1.00 frintz s18, s19 +# CHECK-NEXT: 1 3 1.00 frinta h22, h10 # CHECK-NEXT: 1 3 1.00 frinta s20, s21 +# CHECK-NEXT: 1 3 1.00 frintx h4, h5 # CHECK-NEXT: 1 3 1.00 frintx s22, s23 # CHECK-NEXT: 1 3 1.00 frinti s24, s25 +# CHECK-NEXT: 1 3 1.00 frinti h31, h14 # CHECK-NEXT: 1 2 0.50 fmov d0, d1 # CHECK-NEXT: 1 2 0.50 fabs d2, d3 # CHECK-NEXT: 1 2 0.50 fneg d4, d5 +# CHECK-NEXT: 7 7 7.00 fsqrt h13, h24 # CHECK-NEXT: 16 16 16.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 1.00 fcvt s8, d9 # CHECK-NEXT: 1 3 1.00 fcvt h10, d11 @@ -1917,13 +573,19 @@ drps # CHECK-NEXT: 1 3 1.00 fcvt s26, h27 # CHECK-NEXT: 1 3 1.00 fcvt d28, h29 # CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17 +# CHECK-NEXT: 7 7 7.00 fdiv h1, h26, h23 # CHECK-NEXT: 10 10 10.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17 # CHECK-NEXT: 15 15 15.00 fdiv d1, d2, d3 @@ -1931,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32 @@ -2086,12 +754,17 @@ drps # CHECK-NEXT: 1 3 0.50 fcvtas x27, d28 # CHECK-NEXT: 1 3 0.50 fcvtau w29, d30 # CHECK-NEXT: 1 3 0.50 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 3.00 fmov h6, w5 +# CHECK-NEXT: 1 3 3.00 fmov h16, x27 +# CHECK-NEXT: 1 2 0.50 fmov w15, h31 # CHECK-NEXT: 1 2 0.50 fmov w3, s9 # CHECK-NEXT: 1 3 3.00 fmov s9, w3 +# CHECK-NEXT: 1 2 0.50 fmov x21, h14 # CHECK-NEXT: 1 2 0.50 fmov x20, d31 # CHECK-NEXT: 1 3 3.00 fmov d1, x15 # CHECK-NEXT: 1 2 0.50 fmov x3, v12.d[1] # CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000 @@ -2115,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2] @@ -2130,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.33 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2334,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 2 4 0.33 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 2 4 0.33 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15] +# CHECK-NEXT: 2 4 0.33 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2352,11 +1023,13 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380] # CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760] # CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520] +# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624] # CHECK-NEXT: 2 4 0.33 * ldrb w3, [sp, x5] # CHECK-NEXT: 2 4 0.33 * ldrb w9, [x27, x6] # CHECK-NEXT: 2 4 0.33 * ldrsb w10, [x30, x7] # CHECK-NEXT: 2 4 0.33 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 3 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 2 4 0.33 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 2 4 0.33 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 2 4 0.33 * ldrb w17, [x23, w9, sxtw] @@ -2373,6 +1046,26 @@ drps # CHECK-NEXT: 2 4 0.33 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 2 4 0.33 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 3 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 2 7 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 2 7 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 2 7 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 2 4 0.33 * ldr w3, [sp, x5] # CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6] # CHECK-NEXT: 2 4 0.33 * ldr w10, [x30, x7, lsl #2] @@ -2393,6 +1086,7 @@ drps # CHECK-NEXT: 2 4 0.33 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 2 4 0.33 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 3 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 2 4 0.33 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 2 4 0.33 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 2 4 0.33 * ldr x18, [x22, w10, sxtw] @@ -2424,6 +1118,8 @@ drps # CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504] # CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8] +# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16] # CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008] @@ -2482,6 +1178,12 @@ drps # CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.25 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.25 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.25 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.25 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.25 mov w3, #983055 # CHECK-NEXT: 1 1 0.25 mov x10, #-6148914691236517206 # CHECK-NEXT: 1 1 0.25 and w12, w23, w21 @@ -2498,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.25 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.25 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.25 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.25 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.25 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.25 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.25 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.25 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.25 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.25 orn x3, x5, x7, asr #2 @@ -2523,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.25 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.25 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.25 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.20 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.25 adr x2, #1600 # CHECK-NEXT: 1 1 0.25 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.25 adr x0, #262144 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test # CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test # CHECK-NEXT: 1 1 0.50 b #4 # CHECK-NEXT: 1 1 0.50 b #-4 # CHECK-NEXT: 1 1 0.50 b #134217724 +# CHECK-NEXT: 2 1 0.50 bl test # CHECK-NEXT: 1 1 0.50 br x20 # CHECK-NEXT: 2 1 0.50 blr xzr # CHECK-NEXT: 1 1 0.50 U ret x10 @@ -2557,7 +1267,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] -# CHECK-NEXT: 11.00 11.00 33.00 33.00 87.33 151.33 151.33 509.75 249.75 161.25 161.25 216.50 86.50 +# CHECK-NEXT: 13.00 13.00 34.00 34.00 90.33 161.33 161.33 539.50 253.50 169.00 169.00 254.00 101.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions: @@ -2580,22 +1290,22 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w2, #4095 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wsp, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wsp, #2342 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x30, #4095 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, sp, #3822 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wsp, #1365 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-63432 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w3, w5, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add wzr, w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w20, wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w24, w25, w26, lsr #18 @@ -2609,7 +1319,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x27, x28, x29, lsr #63 @@ -2617,11 +1327,13 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w24, w25, w26, lsr #18 @@ -2635,7 +1347,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x27, x28, x29, lsr #63 @@ -2646,7 +1358,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w24, w25, w26, lsr #18 @@ -2659,18 +1371,21 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w3, w5, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w24, w25, w26, lsr #18 @@ -2683,7 +1398,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x27, x28, x29, lsr #63 @@ -2693,7 +1408,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w5, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w6, w7 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w14, w15, lsr #21 @@ -2706,7 +1421,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x5, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x6, x7 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x16, x17, lsr #63 @@ -2717,19 +1432,21 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w5, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w6, w7 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x0, x3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x5, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x6, x7 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, x17, lsr #63 @@ -2738,6 +1455,10 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x0 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w29, w27, w25 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w9, wzr, w10 @@ -2810,15 +1531,11 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x19, x20, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w9, w10, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz xzr, xzr, #10, #11 @@ -2830,11 +1547,8 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w11, w12, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w13, w14, #29 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfc xzr, #10, #11 @@ -2846,11 +1560,8 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfiz xzr, xzr, #10, #11 @@ -2868,6 +1579,7 @@ drps # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz w21, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ne #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #-4 @@ -2956,7 +1668,6 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg xzr, x4, le # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit w0, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit x18, x3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rev16 w17, w1 @@ -2988,6 +1699,16 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x21, x22, x23 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w24, w25, w26 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x30, x29, x28 @@ -3030,7 +1751,6 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - mul x19, x20, xzr @@ -3046,24 +1766,26 @@ drps # CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror x19, x23, #24 # CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s3, s5 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d4, d12 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs @@ -3072,22 +1794,33 @@ drps # CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h18, h28 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s0, s1 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg h2, h9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg s4, s5 # CHECK-NEXT: - - - - - - - - - - - 9.00 - fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d8, s9 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d0, d1 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs d2, d3 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - - - - 7.00 - fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - - - - 16.00 - fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s8, d9 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, d11 @@ -3101,13 +1834,19 @@ drps # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s26, h27 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d28, h29 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - - - - 7.00 - fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - - - - 10.00 - fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - - - - 15.00 - fdiv d1, d2, d3 @@ -3115,17 +1854,23 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32 @@ -3270,12 +2015,17 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau xzr, d0 +# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w15, h31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w3, s9 # CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x21, h14 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x20, d31 # CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x3, v12.d[1] # CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000 @@ -3299,13 +2049,10 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrb w12, w22, [x0] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrh w10, w1, [x1] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxr w9, w2, [x2] @@ -3314,25 +2061,19 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrb w24, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrh w25, [x30] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr w26, [x29] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturb w9, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturh wzr, [x12, #255] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stur w16, [x0, #-256] @@ -3518,16 +2259,23 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb x12, [x28, x27] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x30, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str w20, [x4, #16380] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b5, [x11] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h23, [x15] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s25, [x19] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d15, [x2] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w17, [sp, #8190] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w23, [x3, #4095] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb wzr, [x2] @@ -3536,11 +2284,13 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str q12, [sp, #65520] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w17, [x23, w9, sxtw] @@ -3557,6 +2307,26 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b14, [x13, x25] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d5, [x26, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr w3, [sp, x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s9, [x27, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr w10, [x30, x7, lsl #2] @@ -3577,6 +2347,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x18, [x22, w10, sxtw] @@ -3608,6 +2379,8 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d3, d5, [x9, #504] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d7, d11, [x10, #-512] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stnp x20, x16, [x8] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stp x3, x6, [x16] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stp q3, q5, [sp] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stp q17, q19, [sp, #1008] @@ -3666,6 +2439,12 @@ drps # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stnp q3, q5, [sp] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - - 0.67 0.67 0.67 - - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w3, #983055 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-6148914691236517206 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and w12, w23, w21 @@ -3682,6 +2461,10 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x22, x16, x6 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orn x3, x5, x7, asr #2 @@ -3707,16 +2490,20 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - - - - - - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adr x2, #1600 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adrp x21, #6553600 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adr x0, #262144 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #-4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #134217724 +# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - bl test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - br x20 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - blr xzr # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s index c497eec223427..814a58d8de613 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s @@ -1,111 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %s | FileCheck %s - -irg x0, x1 -irg sp, x1 -irg x0, sp -irg x0, x1, x2 -irg sp, x1, x2 -addg x0, x1, #0, #1 -addg sp, x2, #32, #3 -addg x0, sp, #64, #5 -addg x3, x4, #1008, #6 -addg x5, x6, #112, #15 -subg x0, x1, #0, #1 -subg sp, x2, #32, #3 -subg x0, sp, #64, #5 -subg x3, x4, #1008, #6 -subg x5, x6, #112, #15 -gmi x0, x1, x2 -gmi x3, sp, x4 -gmi xzr, x0, x30 -gmi x30, x0, xzr -subp x0, x1, x2 -subps x0, x1, x2 -subp x0, sp, sp -subps x0, sp, sp -subps xzr, x0, x1 -subps xzr, sp, sp -stg x0, [x1, #-4096] -stg x1, [x2, #4080] -stg x2, [sp, #16] -stg x3, [x1] -stg sp, [x1] -stzg x0, [x1, #-4096] -stzg x1, [x2, #4080] -stzg x2, [sp, #16] -stzg x3, [x1] -stzg sp, [x1] -stg x0, [x1, #-4096]! -stg x1, [x2, #4080]! -stg x2, [sp, #16]! -stg sp, [sp, #16]! -stzg x0, [x1, #-4096]! -stzg x1, [x2, #4080]! -stzg x2, [sp, #16]! -stzg sp, [sp, #16]! -stg x0, [x1], #-4096 -stg x1, [x2], #4080 -stg x2, [sp], #16 -stg sp, [sp], #16 -stzg x0, [x1], #-4096 -stzg x1, [x2], #4080 -stzg x2, [sp], #16 -stzg sp, [sp], #16 -st2g x0, [x1, #-4096] -st2g x1, [x2, #4080] -st2g x2, [sp, #16] -st2g x3, [x1] -st2g sp, [x1] -stz2g x0, [x1, #-4096] -stz2g x1, [x2, #4080] -stz2g x2, [sp, #16] -stz2g x3, [x1] -stz2g sp, [x1] -st2g x0, [x1, #-4096]! -st2g x1, [x2, #4080]! -st2g x2, [sp, #16]! -st2g sp, [sp, #16]! -stz2g x0, [x1, #-4096]! -stz2g x1, [x2, #4080]! -stz2g x2, [sp, #16]! -stz2g sp, [sp, #16]! -st2g x0, [x1], #-4096 -st2g x1, [x2], #4080 -st2g x2, [sp], #16 -st2g sp, [sp], #16 -stz2g x0, [x1], #-4096 -stz2g x1, [x2], #4080 -stz2g x2, [sp], #16 -stz2g sp, [sp], #16 -stgp x0, x1, [x2, #-1024] -stgp x0, x1, [x2, #1008] -stgp x0, x1, [sp, #16] -stgp xzr, x1, [x2, #16] -stgp x0, xzr, [x2, #16] -stgp x0, xzr, [x2] -stgp x0, x1, [x2, #-1024]! -stgp x0, x1, [x2, #1008]! -stgp x0, x1, [sp, #16]! -stgp xzr, x1, [x2, #16]! -stgp x0, xzr, [x2, #16]! -stgp x0, x1, [x2], #-1024 -stgp x0, x1, [x2], #1008 -stgp x0, x1, [sp], #16 -stgp xzr, x1, [x2], #16 -stgp x0, xzr, [x2], #16 -ldg x0, [x1] -ldg x2, [sp, #-4096] -ldg x3, [x4, #4080] -ldgm x0, [x1] -ldgm x1, [sp] -ldgm xzr, [x2] -stgm x0, [x1] -stgm x1, [sp] -stgm xzr, [x2] -stzgm x0, [x1] -stzgm x1, [sp] -stzgm xzr, [x2] +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..cd3d7e0bf1b57 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s @@ -0,0 +1,60 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - N2UnitB +# CHECK-NEXT: [0.1] - N2UnitB +# CHECK-NEXT: [1.0] - N2UnitD +# CHECK-NEXT: [1.1] - N2UnitD +# CHECK-NEXT: [2] - N2UnitL2 +# CHECK-NEXT: [3.0] - N2UnitL01 +# CHECK-NEXT: [3.1] - N2UnitL01 +# CHECK-NEXT: [4] - N2UnitM0 +# CHECK-NEXT: [5] - N2UnitM1 +# CHECK-NEXT: [6.0] - N2UnitS +# CHECK-NEXT: [6.1] - N2UnitS +# CHECK-NEXT: [7] - N2UnitV0 +# CHECK-NEXT: [8] - N2UnitV1 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] +# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions: +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s index 5f48217f8fab9..f2efce90c6269 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s @@ -1,1372 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1396,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.25 cmn w2, #4095 # CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.25 cmp x30, #4095 # CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.25 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.25 mov sp, x30 -# CHECK-NEXT: 1 1 0.25 mov wsp, w20 -# CHECK-NEXT: 1 1 0.25 mov x11, sp -# CHECK-NEXT: 1 1 0.25 mov w24, wsp +# CHECK-NEXT: 1 1 0.25 mov x10, #-63432 +# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.25 add w3, w5, w7 # CHECK-NEXT: 1 1 0.25 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.25 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 add w4, w6, wzr # CHECK-NEXT: 1 1 0.25 add w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18 @@ -1425,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.25 add x4, x6, xzr # CHECK-NEXT: 1 1 0.25 add x11, x13, x15 # CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63 @@ -1433,11 +66,13 @@ drps # CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.25 adds w3, w5, w7 +# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.25 cmn w3, w5 # CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.25 adds w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18 @@ -1451,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.25 adds x11, x13, x15 # CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63 @@ -1462,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.25 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.25 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.25 sub w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18 @@ -1475,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.25 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.25 sub x11, x13, x15 # CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.25 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.25 cmp w3, w5 # CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.25 subs w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18 @@ -1499,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.25 subs x11, x13, x15 # CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63 @@ -1509,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn wzr, w4 # CHECK-NEXT: 1 1 0.25 cmn w5, wzr # CHECK-NEXT: 1 1 0.25 cmn w6, w7 -# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21 @@ -1522,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn x5, xzr # CHECK-NEXT: 1 1 0.25 cmn x6, x7 # CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63 @@ -1533,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.25 cmp wzr, w4 # CHECK-NEXT: 1 1 0.25 cmp w5, wzr # CHECK-NEXT: 1 1 0.25 cmp w6, w7 -# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 0.50 cmp wsp, w26 +# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.25 cmp x0, x3 # CHECK-NEXT: 1 1 0.25 cmp xzr, x4 # CHECK-NEXT: 1 1 0.25 cmp x5, xzr # CHECK-NEXT: 1 1 0.25 cmp x6, x7 # CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63 @@ -1554,6 +194,10 @@ drps # CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.25 cmp wzr, w0 # CHECK-NEXT: 1 1 0.25 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.25 mov sp, x30 +# CHECK-NEXT: 1 1 0.25 mov wsp, w20 +# CHECK-NEXT: 1 1 0.25 mov x11, sp +# CHECK-NEXT: 1 1 0.25 mov w24, wsp # CHECK-NEXT: 1 1 0.25 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.25 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.25 adc w9, wzr, w10 @@ -1626,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.25 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.25 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.25 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.25 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.25 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.25 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.25 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.25 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.25 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.25 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.25 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.25 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.25 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.25 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.25 sbfiz xzr, xzr, #10, #11 @@ -1646,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.25 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.25 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.25 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.25 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.25 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.25 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 1 0.25 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.25 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 1 0.25 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.25 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.25 bfc xzr, #10, #11 @@ -1662,11 +299,8 @@ drps # CHECK-NEXT: 1 1 0.25 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.25 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.25 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.25 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.25 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.25 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.25 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.25 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.25 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.25 ubfiz xzr, xzr, #10, #11 @@ -1684,6 +318,7 @@ drps # CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572 # CHECK-NEXT: 1 1 0.50 cbz wzr, #0 # CHECK-NEXT: 1 1 0.50 cbnz xzr, #0 +# CHECK-NEXT: 1 1 0.50 cbnz w21, test # CHECK-NEXT: 1 1 0.50 b.ne #4 # CHECK-NEXT: 1 1 0.50 b.ge #1048572 # CHECK-NEXT: 1 1 0.50 b.ge #-4 @@ -1772,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.25 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.25 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.25 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.25 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.25 rbit w0, w7 # CHECK-NEXT: 1 1 0.25 rbit x18, x3 # CHECK-NEXT: 1 1 0.25 rev16 w17, w1 @@ -1804,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.25 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.25 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.25 ror x27, x28, x29 +# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26 # CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28 @@ -1846,7 +490,6 @@ drps # CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21 -# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr # CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr # CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr @@ -1862,24 +505,26 @@ drps # CHECK-NEXT: 1 1 0.25 ror x19, x23, #24 # CHECK-NEXT: 1 1 0.25 ror x29, xzr, #63 # CHECK-NEXT: 1 1 0.25 ror w9, w13, #31 +# CHECK-NEXT: 1 2 0.50 fcmp h5, h21 +# CHECK-NEXT: 1 2 0.50 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 0.50 fcmpe h22, h21 +# CHECK-NEXT: 1 2 0.50 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 0.50 fcmp s3, s5 # CHECK-NEXT: 1 2 0.50 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 0.50 fcmp s31, #0.0 # CHECK-NEXT: 1 2 0.50 fcmpe s29, s30 # CHECK-NEXT: 1 2 0.50 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 0.50 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 0.50 fcmp d4, d12 # CHECK-NEXT: 1 2 0.50 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 0.50 fcmp d23, #0.0 # CHECK-NEXT: 1 2 0.50 fcmpe d26, d22 # CHECK-NEXT: 1 2 0.50 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 0.50 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 0.50 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 0.50 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 0.50 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 0.50 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 0.50 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 0.50 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 0.50 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 0.50 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 0.50 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 0.50 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 0.50 fccmpe s31, s15, #13, hs @@ -1888,22 +533,33 @@ drps # CHECK-NEXT: 1 2 0.50 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.50 fmov h18, h28 # CHECK-NEXT: 1 0 0.20 fmov s0, s1 # CHECK-NEXT: 1 2 0.50 fabs s2, s3 +# CHECK-NEXT: 1 2 0.50 fneg h2, h9 # CHECK-NEXT: 1 2 0.50 fneg s4, s5 # CHECK-NEXT: 1 7 1.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 1.00 fcvt d8, s9 # CHECK-NEXT: 1 3 1.00 fcvt h10, s11 +# CHECK-NEXT: 1 3 1.00 frintn h12, h3 # CHECK-NEXT: 1 3 1.00 frintn s12, s13 +# CHECK-NEXT: 1 3 1.00 frintp h17, h31 # CHECK-NEXT: 1 3 1.00 frintp s14, s15 +# CHECK-NEXT: 1 3 1.00 frintm h0, h21 # CHECK-NEXT: 1 3 1.00 frintm s16, s17 +# CHECK-NEXT: 1 3 1.00 frintz h10, h29 # CHECK-NEXT: 1 3 1.00 frintz s18, s19 +# CHECK-NEXT: 1 3 1.00 frinta h22, h10 # CHECK-NEXT: 1 3 1.00 frinta s20, s21 +# CHECK-NEXT: 1 3 1.00 frintx h4, h5 # CHECK-NEXT: 1 3 1.00 frintx s22, s23 # CHECK-NEXT: 1 3 1.00 frinti s24, s25 +# CHECK-NEXT: 1 3 1.00 frinti h31, h14 # CHECK-NEXT: 1 0 0.20 fmov d0, d1 # CHECK-NEXT: 1 2 0.50 fabs d2, d3 # CHECK-NEXT: 1 2 0.50 fneg d4, d5 +# CHECK-NEXT: 1 5 1.00 fsqrt h13, h24 # CHECK-NEXT: 1 12 1.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 1.00 fcvt s8, d9 # CHECK-NEXT: 1 3 1.00 fcvt h10, d11 @@ -1917,13 +573,19 @@ drps # CHECK-NEXT: 1 3 1.00 fcvt s26, h27 # CHECK-NEXT: 1 3 1.00 fcvt d28, h29 # CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17 +# CHECK-NEXT: 1 5 1.00 fdiv h1, h26, h23 # CHECK-NEXT: 1 7 1.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17 # CHECK-NEXT: 1 12 1.00 fdiv d1, d2, d3 @@ -1931,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32 @@ -2086,12 +754,17 @@ drps # CHECK-NEXT: 1 3 1.00 fcvtas x27, d28 # CHECK-NEXT: 1 3 1.00 fcvtau w29, d30 # CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 1.00 fmov h6, w5 +# CHECK-NEXT: 1 3 1.00 fmov h16, x27 +# CHECK-NEXT: 1 3 0.50 fmov w15, h31 # CHECK-NEXT: 1 3 0.50 fmov w3, s9 # CHECK-NEXT: 1 3 1.00 fmov s9, w3 +# CHECK-NEXT: 1 3 0.50 fmov x21, h14 # CHECK-NEXT: 1 3 0.50 fmov x20, d31 # CHECK-NEXT: 1 3 1.00 fmov d1, x15 # CHECK-NEXT: 1 3 0.50 fmov x3, v12.d[1] # CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000 @@ -2115,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 1 4 0.33 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 1 4 0.33 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2] @@ -2130,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 1 4 0.33 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 1 4 0.33 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.33 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2334,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15] +# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2352,11 +1023,13 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380] # CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760] # CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520] +# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624] # CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5] # CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7] # CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw] @@ -2373,6 +1046,26 @@ drps # CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 1 6 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5] # CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2] @@ -2393,6 +1086,7 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw] @@ -2424,6 +1118,8 @@ drps # CHECK-NEXT: 1 6 0.33 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504] # CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8] +# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16] # CHECK-NEXT: 1 6 0.33 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 2 2 0.50 * stp q3, q5, [sp] # CHECK-NEXT: 2 2 0.50 * stp q17, q19, [sp, #1008] @@ -2482,6 +1178,12 @@ drps # CHECK-NEXT: 2 2 0.50 * stnp q3, q5, [sp] # CHECK-NEXT: 2 2 0.50 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 2 6 0.67 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.25 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.25 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.25 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.25 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.25 mov w3, #983055 # CHECK-NEXT: 1 1 0.25 mov x10, #-6148914691236517206 # CHECK-NEXT: 1 1 0.25 and w12, w23, w21 @@ -2498,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.25 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.25 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.25 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.25 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.25 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.25 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.25 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.25 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.25 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.25 orn x3, x5, x7, asr #2 @@ -2523,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.25 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.25 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.25 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.25 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.50 adr x2, #1600 # CHECK-NEXT: 1 1 0.50 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.50 adr x0, #262144 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test # CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test # CHECK-NEXT: 1 1 0.50 b #4 # CHECK-NEXT: 1 1 0.50 b #-4 # CHECK-NEXT: 1 1 0.50 b #134217724 +# CHECK-NEXT: 2 1 0.50 bl test # CHECK-NEXT: 1 1 0.50 br x20 # CHECK-NEXT: 2 1 0.50 blr xzr # CHECK-NEXT: 1 1 0.50 U ret x10 @@ -2557,7 +1267,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] -# CHECK-NEXT: 11.00 11.00 33.00 33.00 99.33 163.33 163.33 356.50 211.50 155.00 155.00 183.50 63.50 +# CHECK-NEXT: 13.00 13.00 34.00 34.00 102.33 173.33 173.33 370.00 213.00 159.00 159.00 208.00 79.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions: @@ -2580,22 +1290,22 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w2, #4095 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wsp, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wsp, #2342 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x30, #4095 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, sp, #3822 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wsp, #1365 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-63432 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w3, w5, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add wzr, w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w20, wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w24, w25, w26, lsr #18 @@ -2609,7 +1319,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x27, x28, x29, lsr #63 @@ -2617,11 +1327,13 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w24, w25, w26, lsr #18 @@ -2635,7 +1347,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x27, x28, x29, lsr #63 @@ -2646,7 +1358,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w24, w25, w26, lsr #18 @@ -2659,18 +1371,21 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w3, w5, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w3, w5 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w4, w6, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w11, w13, w15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w24, w25, w26, lsr #18 @@ -2683,7 +1398,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, x6, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x11, x13, x15 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x27, x28, x29, lsr #63 @@ -2693,7 +1408,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w5, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w6, w7 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w14, w15, lsr #21 @@ -2706,7 +1421,7 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x5, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x6, x7 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x16, x17, lsr #63 @@ -2717,19 +1432,21 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w5, wzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w6, w7 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x0, x3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x5, xzr # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x6, x7 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, x17, lsr #63 @@ -2738,6 +1455,10 @@ drps # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x0 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w29, w27, w25 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w9, wzr, w10 @@ -2810,15 +1531,11 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x19, x20, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w9, w10, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz xzr, xzr, #10, #11 @@ -2830,11 +1547,8 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w11, w12, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w13, w14, #29 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfc xzr, #10, #11 @@ -2846,11 +1560,8 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfiz xzr, xzr, #10, #11 @@ -2868,6 +1579,7 @@ drps # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz w21, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ne #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #-4 @@ -2956,7 +1668,6 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg xzr, x4, le # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit w0, w7 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit x18, x3 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rev16 w17, w1 @@ -2988,6 +1699,16 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x21, x22, x23 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w24, w25, w26 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x30, x29, x28 @@ -3030,7 +1751,6 @@ drps # CHECK-NEXT: - - - - - - - 1.00 - - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - - - 1.00 - - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - mul x19, x20, xzr @@ -3046,24 +1766,26 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x19, x23, #24 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s3, s5 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d4, d12 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s31, s15, #13, hs @@ -3072,22 +1794,33 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h18, h28 # CHECK-NEXT: - - - - - - - - - - - - - fmov s0, s1 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg h2, h9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg s4, s5 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d8, s9 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - - - - - - fmov d0, d1 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs d2, d3 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s8, d9 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, d11 @@ -3101,13 +1834,19 @@ drps # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s26, h27 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d28, h29 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv d1, d2, d3 @@ -3115,17 +1854,23 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32 @@ -3270,12 +2015,17 @@ drps # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau xzr, d0 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w15, h31 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w3, s9 # CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x21, h14 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x20, d31 # CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x3, v12.d[1] # CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000 @@ -3299,13 +2049,10 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrb w12, w22, [x0] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrh w10, w1, [x1] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxr w9, w2, [x2] @@ -3314,25 +2061,19 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrb w24, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrh w25, [x30] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr w26, [x29] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturb w9, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturh wzr, [x12, #255] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stur w16, [x0, #-256] @@ -3518,16 +2259,23 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb x12, [x28, x27] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x30, [sp] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str w20, [x4, #16380] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b5, [x11] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h23, [x15] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s25, [x19] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d15, [x2] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w17, [sp, #8190] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w23, [x3, #4095] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb wzr, [x2] @@ -3536,11 +2284,13 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str q12, [sp, #65520] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w17, [x23, w9, sxtw] @@ -3557,6 +2307,26 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b14, [x13, x25] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d5, [x26, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w3, [sp, x5] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s9, [x27, x6] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w10, [x30, x7, lsl #2] @@ -3577,6 +2347,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x18, [x22, w10, sxtw] @@ -3608,6 +2379,8 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d3, d5, [x9, #504] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d7, d11, [x10, #-512] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stnp x20, x16, [x8] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stp x3, x6, [x16] # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp q3, q5, [sp] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp q17, q19, [sp, #1008] @@ -3666,6 +2439,12 @@ drps # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stnp q3, q5, [sp] # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - - 0.67 0.67 0.67 - - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w3, #983055 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-6148914691236517206 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and w12, w23, w21 @@ -3682,6 +2461,10 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x22, x16, x6 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orn x3, x5, x7, asr #2 @@ -3707,16 +2490,20 @@ drps # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adr x2, #1600 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adrp x21, #6553600 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adr x0, #262144 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #-4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #134217724 +# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - bl test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - br x20 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - blr xzr # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s index 132dd8eb220d4..114e21549e326 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s @@ -1,111 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %s | FileCheck %s - -irg x0, x1 -irg sp, x1 -irg x0, sp -irg x0, x1, x2 -irg sp, x1, x2 -addg x0, x1, #0, #1 -addg sp, x2, #32, #3 -addg x0, sp, #64, #5 -addg x3, x4, #1008, #6 -addg x5, x6, #112, #15 -subg x0, x1, #0, #1 -subg sp, x2, #32, #3 -subg x0, sp, #64, #5 -subg x3, x4, #1008, #6 -subg x5, x6, #112, #15 -gmi x0, x1, x2 -gmi x3, sp, x4 -gmi xzr, x0, x30 -gmi x30, x0, xzr -subp x0, x1, x2 -subps x0, x1, x2 -subp x0, sp, sp -subps x0, sp, sp -subps xzr, x0, x1 -subps xzr, sp, sp -stg x0, [x1, #-4096] -stg x1, [x2, #4080] -stg x2, [sp, #16] -stg x3, [x1] -stg sp, [x1] -stzg x0, [x1, #-4096] -stzg x1, [x2, #4080] -stzg x2, [sp, #16] -stzg x3, [x1] -stzg sp, [x1] -stg x0, [x1, #-4096]! -stg x1, [x2, #4080]! -stg x2, [sp, #16]! -stg sp, [sp, #16]! -stzg x0, [x1, #-4096]! -stzg x1, [x2, #4080]! -stzg x2, [sp, #16]! -stzg sp, [sp, #16]! -stg x0, [x1], #-4096 -stg x1, [x2], #4080 -stg x2, [sp], #16 -stg sp, [sp], #16 -stzg x0, [x1], #-4096 -stzg x1, [x2], #4080 -stzg x2, [sp], #16 -stzg sp, [sp], #16 -st2g x0, [x1, #-4096] -st2g x1, [x2, #4080] -st2g x2, [sp, #16] -st2g x3, [x1] -st2g sp, [x1] -stz2g x0, [x1, #-4096] -stz2g x1, [x2, #4080] -stz2g x2, [sp, #16] -stz2g x3, [x1] -stz2g sp, [x1] -st2g x0, [x1, #-4096]! -st2g x1, [x2, #4080]! -st2g x2, [sp, #16]! -st2g sp, [sp, #16]! -stz2g x0, [x1, #-4096]! -stz2g x1, [x2, #4080]! -stz2g x2, [sp, #16]! -stz2g sp, [sp, #16]! -st2g x0, [x1], #-4096 -st2g x1, [x2], #4080 -st2g x2, [sp], #16 -st2g sp, [sp], #16 -stz2g x0, [x1], #-4096 -stz2g x1, [x2], #4080 -stz2g x2, [sp], #16 -stz2g sp, [sp], #16 -stgp x0, x1, [x2, #-1024] -stgp x0, x1, [x2, #1008] -stgp x0, x1, [sp, #16] -stgp xzr, x1, [x2, #16] -stgp x0, xzr, [x2, #16] -stgp x0, xzr, [x2] -stgp x0, x1, [x2, #-1024]! -stgp x0, x1, [x2, #1008]! -stgp x0, x1, [sp, #16]! -stgp xzr, x1, [x2, #16]! -stgp x0, xzr, [x2, #16]! -stgp x0, x1, [x2], #-1024 -stgp x0, x1, [x2], #1008 -stgp x0, x1, [sp], #16 -stgp xzr, x1, [x2], #16 -stgp x0, xzr, [x2], #16 -ldg x0, [x1] -ldg x2, [sp, #-4096] -ldg x3, [x4, #4080] -ldgm x0, [x1] -ldgm x1, [sp] -ldgm xzr, [x2] -stgm x0, [x1] -stgm x1, [sp] -stgm xzr, [x2] -stzgm x0, [x1] -stzgm x1, [sp] -stzgm xzr, [x2] +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..6faa5e1f4db1b --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s @@ -0,0 +1,60 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - N3UnitB +# CHECK-NEXT: [0.1] - N3UnitB +# CHECK-NEXT: [1.0] - N3UnitD +# CHECK-NEXT: [1.1] - N3UnitD +# CHECK-NEXT: [2] - N3UnitL2 +# CHECK-NEXT: [3.0] - N3UnitL01 +# CHECK-NEXT: [3.1] - N3UnitL01 +# CHECK-NEXT: [4] - N3UnitM0 +# CHECK-NEXT: [5] - N3UnitM1 +# CHECK-NEXT: [6.0] - N3UnitS +# CHECK-NEXT: [6.1] - N3UnitS +# CHECK-NEXT: [7] - N3UnitV0 +# CHECK-NEXT: [8] - N3UnitV1 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] +# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions: +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17] +# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s index 787acbe91c057..801a5d85e541a 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s @@ -1,1459 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp wsp, #2342 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov x10, #-63432 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add wsp, wsp, w10 -add x25, x9, w25, uxtb -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #1 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #3 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -adds w17, wsp, w25 -adds x13, x23, w8, uxtb -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #1 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #3 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #1 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #3 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -sub w13, wsp, w10 -sub x16, x2, w19, uxtb -subs x13, x15, x14, sxtx #1 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #1 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #3 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #1 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #3 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #1 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp wsp, w26 -cmp x16, w27, uxtb -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #3 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfiz x2, x3, #63, #1 -sbfiz x9, x10, #5, #59 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfi x2, x3, #63, #1 -bfi x9, x10, #5, #59 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -lsl x2, x3, #63 -lsl x9, x10, #5 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 -cbnz w21, test - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -crc32cb w30, w23, w15 -crc32cb w31, w12, w14 -crc32cb w28, w10, w11 -crc32b w27, w12, w15 -crc32h w3, w15, w21 -crc32w w9, w18, w24 -crc32x w19, w6, x25 -crc32ch w25, w26, w16 -crc32cw w27, w12, w23 -crc32cx w21, w28, x5 -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp h5, h21 -fcmp h5, #0.0 -fcmpe h22, h21 -fcmpe h13, #0.0 -fcmp s3, s5 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmp h31, h3, #11, hs -fccmpe h6, h1, #12, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi -fcsel h26, h2, h11, hs - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov h18, h28 -fmov s0, s1 -fabs s2, s3 -fneg h2, h9 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn h12, h3 -frintn s12, s13 -frintp h17, h31 -frintp s14, s15 -frintm h0, h21 -frintm s16, s17 -frintz h10, h29 -frintz s18, s19 -frinta h22, h10 -frinta s20, s21 -frintx h4, h5 -frintx s22, s23 -frinti s24, s25 -frinti h31, h14 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt h13, h24 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv h1, h26, h23 -fdiv s1, s2, s3 -fadd h23, h27, h22 -fadd s4, s5, s6 -fsub h20, h11, h18 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmax h8, h7, h11 -fmin s13, s14, s15 -fmaxnm h29, h13, h14 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul h3, h15, h7 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmin h4, h13, h17 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fminnm h29, h23, h17 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd h27, h0, h6, h28 -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub h25, h28, h12, h24 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd h3, h18, h31, h24 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 -fnmsub h3, h29, h24, h17 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov h6, w5 -fmov h16, x27 -fmov w15, h31 -fmov w3, s9 -fmov s9, w3 -fmov x21, h14 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov h29, #0.50000000 -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldapur w7, [x24] -ldapur x20, [x13] -ldapurb w13, [x17] -ldapurh w3, [x22] -ldapursb w7, [x8] -ldapursb x29, [x7] -ldapursh w17, [x19] -ldapursh x3, [x3] -ldapursw x3, [x18] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlur w3, [x27] -stlur x23, [x25] -stlurb w30, [x17] -stlurh w9, [x29] -ldarb w16, [x21] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrsw x21, [x25, x7] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrsh x25, [x8, w13, uxtw] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -ldrsb x12, [x28, x27] -str x30, [sp] -str w20, [x4, #16380] -str b5, [x11] -str h23, [x15] -str s25, [x19] -str d15, [x2] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] -ldr q14, [x6, #4624] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -strb w5, [x26, w7, uxtw] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr b25, [x21, w8, uxtw] -ldr b8, [x30, x10] -str b14, [x13, x25] -str b30, [x16, w26, uxtw] -ldr h6, [x4, w4, uxtw] -ldr h11, [x13, x9] -str h16, [x5, x24] -str h15, [x15, w15, uxtw] -ldr s12, [x30, w5, uxtw] -ldr d24, [x26, w7, uxtw] -str s20, [x24, w10, uxtw] -str d5, [x26, x6] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -str x27, [x26, w24, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -stnp x20, x16, [x8] -stp x3, x6, [x16] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -and wsp, w16, #0xe00 -and x2, x22, #0x1e00 -ands w14, w8, #0x70 -ands x4, x10, #0x60 -eor wsp, w4, #0xe00 -eor x27, x25, #0x1e00 -mov w3, #983055 -mov x10, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -eon w29, w4, w19 -eon x19, x12, x2 -eor w8, w27, w2 -eor x22, x16, x6 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# Move immediate to Special Register -#------------------------------------------------------------------------------ - -msr DAIFSet, #0 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbz w17, #16, test -tbnz x12, #60, #32764 -tbnz w3, #28, test - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 -bl test - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -2258,23 +804,10 @@ drps # CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 0.67 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 0.67 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24] -# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] -# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] -# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] -# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] -# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] -# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] # CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] @@ -2517,10 +1050,18 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] # CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] # CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h6, [x4, w4, uxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h11, [x13, x9] -# CHECK-NEXT: 3 2 0.50 * str h16, [x5, x24] -# CHECK-NEXT: 3 2 0.50 * str h15, [x15, w15, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 2 7 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 3 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 3 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 2 7 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 2 7 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 3 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] # CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] # CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] # CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] @@ -2731,7 +1272,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] -# CHECK-NEXT: 13.00 13.00 40.50 40.50 48.00 48.00 48.00 96.67 175.17 175.17 321.25 208.25 140.75 140.75 189.00 55.50 65.50 13.00 +# CHECK-NEXT: 13.00 13.00 34.00 34.00 48.00 48.00 48.00 98.67 171.67 171.67 323.25 210.25 142.75 142.75 190.00 56.50 65.50 13.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions: @@ -3529,23 +2070,10 @@ drps # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlrb w24, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlrh w25, [x30] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlr w26, [x29] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurh w9, [x29] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarh w22, [x30] @@ -3788,10 +2316,18 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldr b8, [x30, x10] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - str b14, [x13, x25] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - str b30, [x16, w26, uxtw] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h6, [x4, w4, uxtw] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h11, [x13, x9] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h16, [x5, x24] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h15, [x15, w15, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h19, [x21, wzr, sxtw #1] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldr s12, [x30, w5, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldr d24, [x26, w7, uxtw] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - str s20, [x24, w10, uxtw] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..5c9b43a0e5121 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s @@ -0,0 +1,65 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V1UnitB +# CHECK-NEXT: [0.1] - V1UnitB +# CHECK-NEXT: [1.0] - V1UnitD +# CHECK-NEXT: [1.1] - V1UnitD +# CHECK-NEXT: [2.0] - V1UnitFlg +# CHECK-NEXT: [2.1] - V1UnitFlg +# CHECK-NEXT: [2.2] - V1UnitFlg +# CHECK-NEXT: [3] - V1UnitL2 +# CHECK-NEXT: [4.0] - V1UnitL01 +# CHECK-NEXT: [4.1] - V1UnitL01 +# CHECK-NEXT: [5] - V1UnitM0 +# CHECK-NEXT: [6] - V1UnitM1 +# CHECK-NEXT: [7.0] - V1UnitS +# CHECK-NEXT: [7.1] - V1UnitS +# CHECK-NEXT: [8] - V1UnitV0 +# CHECK-NEXT: [9] - V1UnitV1 +# CHECK-NEXT: [10] - V1UnitV2 +# CHECK-NEXT: [11] - V1UnitV3 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] +# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions: +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s index 54b5f1644be48..dbe52eef122e9 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s @@ -1,1386 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldr h3, [sp, x5] -ldr h9, [x27, x6] -ldr h10, [x30, x7, lsl #1] -str h11, [x29, x3, sxtx] -str h12, [x28, xzr, sxtx] -str h13, [x27, x5, sxtx #1] -ldr h14, [x26, w6, uxtw] -ldr h15, [x25, w7, uxtw] -ldr h16, [x24, w8, uxtw #1] -ldr h17, [x23, w9, sxtw] -str h18, [x22, w10, sxtw] -ldr h19, [x21, wzr, sxtw #1] -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 -ands w4, w4, #983055 -ands x11, x11, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1410,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.33 cmn w2, #4095 # CHECK-NEXT: 1 1 0.33 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.33 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.33 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.33 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.33 cmp x30, #4095 # CHECK-NEXT: 1 1 0.33 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.33 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.33 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.33 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.17 mov sp, x30 -# CHECK-NEXT: 1 1 0.17 mov wsp, w20 -# CHECK-NEXT: 1 1 0.17 mov x11, sp -# CHECK-NEXT: 1 1 0.17 mov w24, wsp +# CHECK-NEXT: 1 1 0.17 mov x10, #-63432 +# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.17 add w3, w5, w7 # CHECK-NEXT: 1 1 0.17 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.17 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.17 add w4, w6, wzr # CHECK-NEXT: 1 1 0.17 add w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.17 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18 @@ -1439,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.17 add x4, x6, xzr # CHECK-NEXT: 1 1 0.17 add x11, x13, x15 # CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.17 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63 @@ -1447,11 +66,13 @@ drps # CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.33 adds w3, w5, w7 +# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.33 cmn w3, w5 # CHECK-NEXT: 1 1 0.33 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.33 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.33 adds w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18 @@ -1465,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.33 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.33 adds x11, x13, x15 # CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63 @@ -1476,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.17 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.17 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.17 sub w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.17 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18 @@ -1489,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.17 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.17 sub x11, x13, x15 # CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.17 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.33 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.33 cmp w3, w5 # CHECK-NEXT: 1 1 0.33 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.33 subs w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.33 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18 @@ -1513,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.33 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.33 subs x11, x13, x15 # CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.33 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63 @@ -1523,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.33 cmn wzr, w4 # CHECK-NEXT: 1 1 0.33 cmn w5, wzr # CHECK-NEXT: 1 1 0.33 cmn w6, w7 -# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.33 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21 @@ -1536,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.33 cmn x5, xzr # CHECK-NEXT: 1 1 0.33 cmn x6, x7 # CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.33 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63 @@ -1547,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.33 cmp wzr, w4 # CHECK-NEXT: 1 1 0.33 cmp w5, wzr # CHECK-NEXT: 1 1 0.33 cmp w6, w7 -# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.33 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 0.50 cmp wsp, w26 +# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.33 cmp x0, x3 # CHECK-NEXT: 1 1 0.33 cmp xzr, x4 # CHECK-NEXT: 1 1 0.33 cmp x5, xzr # CHECK-NEXT: 1 1 0.33 cmp x6, x7 # CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.33 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63 @@ -1568,6 +194,10 @@ drps # CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.33 cmp wzr, w0 # CHECK-NEXT: 1 1 0.33 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.17 mov sp, x30 +# CHECK-NEXT: 1 1 0.17 mov wsp, w20 +# CHECK-NEXT: 1 1 0.17 mov x11, sp +# CHECK-NEXT: 1 1 0.17 mov w24, wsp # CHECK-NEXT: 1 1 0.17 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.17 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.17 adc w9, wzr, w10 @@ -1640,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.17 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.17 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.17 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.17 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.17 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.17 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.17 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.17 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.17 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.17 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.17 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.17 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.17 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.17 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.17 sbfiz xzr, xzr, #10, #11 @@ -1660,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.17 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.17 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.17 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11 @@ -1676,11 +299,8 @@ drps # CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.17 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.17 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.17 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.17 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.17 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.17 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.17 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.17 ubfiz xzr, xzr, #10, #11 @@ -1698,6 +318,7 @@ drps # CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572 # CHECK-NEXT: 1 1 0.50 cbz wzr, #0 # CHECK-NEXT: 1 1 0.50 cbnz xzr, #0 +# CHECK-NEXT: 1 1 0.50 cbnz w21, test # CHECK-NEXT: 1 1 0.50 b.ne #4 # CHECK-NEXT: 1 1 0.50 b.ge #1048572 # CHECK-NEXT: 1 1 0.50 b.ge #-4 @@ -1786,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.17 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.17 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.17 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.17 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.17 rbit w0, w7 # CHECK-NEXT: 1 1 0.17 rbit x18, x3 # CHECK-NEXT: 1 1 0.17 rev16 w17, w1 @@ -1818,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.17 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.17 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.17 ror x27, x28, x29 +# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26 # CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28 @@ -1860,7 +490,6 @@ drps # CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21 -# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr # CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr # CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr @@ -1876,24 +505,26 @@ drps # CHECK-NEXT: 1 1 0.17 ror x19, x23, #24 # CHECK-NEXT: 1 1 0.17 ror x29, xzr, #63 # CHECK-NEXT: 1 1 0.17 ror w9, w13, #31 +# CHECK-NEXT: 1 2 1.00 fcmp h5, h21 +# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21 +# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp s3, s5 # CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe s29, s30 # CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp d4, d12 # CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe d26, d22 # CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs @@ -1902,22 +533,33 @@ drps # CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.25 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.25 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.25 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.25 fmov h18, h28 # CHECK-NEXT: 1 2 0.25 fmov s0, s1 # CHECK-NEXT: 1 2 0.25 fabs s2, s3 +# CHECK-NEXT: 1 2 0.25 fneg h2, h9 # CHECK-NEXT: 1 2 0.25 fneg s4, s5 # CHECK-NEXT: 1 9 1.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 0.50 fcvt d8, s9 # CHECK-NEXT: 1 3 0.50 fcvt h10, s11 +# CHECK-NEXT: 1 3 0.50 frintn h12, h3 # CHECK-NEXT: 1 3 0.50 frintn s12, s13 +# CHECK-NEXT: 1 3 0.50 frintp h17, h31 # CHECK-NEXT: 1 3 0.50 frintp s14, s15 +# CHECK-NEXT: 1 3 0.50 frintm h0, h21 # CHECK-NEXT: 1 3 0.50 frintm s16, s17 +# CHECK-NEXT: 1 3 0.50 frintz h10, h29 # CHECK-NEXT: 1 3 0.50 frintz s18, s19 +# CHECK-NEXT: 1 3 0.50 frinta h22, h10 # CHECK-NEXT: 1 3 0.50 frinta s20, s21 +# CHECK-NEXT: 1 3 0.50 frintx h4, h5 # CHECK-NEXT: 1 3 0.50 frintx s22, s23 # CHECK-NEXT: 1 3 0.50 frinti s24, s25 +# CHECK-NEXT: 1 3 0.50 frinti h31, h14 # CHECK-NEXT: 1 2 0.25 fmov d0, d1 # CHECK-NEXT: 1 2 0.25 fabs d2, d3 # CHECK-NEXT: 1 2 0.25 fneg d4, d5 +# CHECK-NEXT: 1 7 1.00 fsqrt h13, h24 # CHECK-NEXT: 1 16 4.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 0.50 fcvt s8, d9 # CHECK-NEXT: 1 3 0.50 fcvt h10, d11 @@ -1931,13 +573,19 @@ drps # CHECK-NEXT: 1 3 0.50 fcvt s26, h27 # CHECK-NEXT: 1 3 0.50 fcvt d28, h29 # CHECK-NEXT: 1 3 0.25 fmul s20, s19, s17 +# CHECK-NEXT: 1 7 1.00 fdiv h1, h26, h23 # CHECK-NEXT: 1 10 1.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.25 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.25 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.25 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.25 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.25 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.25 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.25 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.25 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.25 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.25 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.25 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.25 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.25 fmul d20, d19, d17 # CHECK-NEXT: 1 15 4.00 fdiv d1, d2, d3 @@ -1945,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.25 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.25 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.25 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.25 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.25 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.25 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.25 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.25 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.25 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.25 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.25 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.25 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.25 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32 @@ -2100,12 +754,17 @@ drps # CHECK-NEXT: 1 3 1.00 fcvtas x27, d28 # CHECK-NEXT: 1 3 1.00 fcvtau w29, d30 # CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 1.00 fmov h6, w5 +# CHECK-NEXT: 1 3 1.00 fmov h16, x27 +# CHECK-NEXT: 2 2 1.00 fmov w15, h31 # CHECK-NEXT: 2 2 1.00 fmov w3, s9 # CHECK-NEXT: 1 3 1.00 fmov s9, w3 +# CHECK-NEXT: 2 2 1.00 fmov x21, h14 # CHECK-NEXT: 2 2 1.00 fmov x20, d31 # CHECK-NEXT: 1 3 1.00 fmov d1, x15 # CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1] # CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.25 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.25 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.25 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.25 fmov d30, #16.00000000 @@ -2129,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2] @@ -2144,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.33 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2348,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15] +# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2366,23 +1023,13 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380] # CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760] # CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520] -# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] -# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] -# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] -# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] -# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624] # CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5] # CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7] # CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw] @@ -2399,6 +1046,26 @@ drps # CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5] # CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2] @@ -2419,6 +1086,7 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw] @@ -2450,6 +1118,8 @@ drps # CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504] # CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8] +# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16] # CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008] @@ -2508,10 +1178,14 @@ drps # CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.17 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.17 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.33 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.33 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.17 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.17 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.17 mov w3, #983055 # CHECK-NEXT: 1 1 0.17 mov x10, #-6148914691236517206 -# CHECK-NEXT: 1 1 0.33 ands w4, w4, #0xf000f -# CHECK-NEXT: 1 1 0.33 ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: 1 1 0.17 and w12, w23, w21 # CHECK-NEXT: 1 1 0.17 and w16, w15, w1, lsl #1 # CHECK-NEXT: 1 1 0.17 and w9, w4, w10, lsl #31 @@ -2526,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.17 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.17 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.17 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.17 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.17 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.17 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.17 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.17 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.17 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.17 orn x3, x5, x7, asr #2 @@ -2551,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.17 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.17 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.17 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.17 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.25 adr x2, #1600 # CHECK-NEXT: 1 1 0.25 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.25 adr x0, #262144 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4 # CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test # CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test # CHECK-NEXT: 1 1 0.50 b #4 # CHECK-NEXT: 1 1 0.50 b #-4 # CHECK-NEXT: 1 1 0.50 b #134217724 +# CHECK-NEXT: 2 1 0.50 bl test # CHECK-NEXT: 1 1 0.50 br x20 # CHECK-NEXT: 2 1 0.50 blr xzr # CHECK-NEXT: 1 1 0.50 U ret x10 @@ -2592,7 +1274,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] -# CHECK-NEXT: 11.00 11.00 33.00 33.00 54.00 54.00 54.00 99.00 165.00 165.00 329.92 184.92 112.92 112.92 86.17 86.17 190.00 146.00 30.00 10.00 +# CHECK-NEXT: 13.00 13.00 34.00 34.00 54.33 54.33 54.33 99.33 170.33 170.33 341.50 184.50 116.50 116.50 87.00 87.00 207.25 155.75 39.25 13.75 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions: @@ -2615,22 +1297,22 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w2, #4095 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wsp, #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wsp, #2342 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x30, #4095 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, sp, #3822 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wsp, #1365 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov sp, x30 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov wsp, w20 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x11, sp -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w24, wsp +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x10, #-63432 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w3, w5, w7 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w20, wzr, w4 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w24, w25, w26, lsr #18 @@ -2644,7 +1326,7 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x27, x28, x29, lsr #63 @@ -2652,11 +1334,13 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, w5 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wzr, w4 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w4, w6, wzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w11, w13, w15 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w24, w25, w26, lsr #18 @@ -2670,7 +1354,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x4, x6, xzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x11, x13, x15 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x27, x28, x29, lsr #63 @@ -2681,7 +1365,7 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w24, w25, w26, lsr #18 @@ -2694,18 +1378,21 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w3, w5, w7 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w3, w5 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w4, w6, wzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w11, w13, w15 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w24, w25, w26, lsr #18 @@ -2718,7 +1405,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, x6, xzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x11, x13, x15 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x27, x28, x29, lsr #63 @@ -2728,7 +1415,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wzr, w4 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w5, wzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w6, w7 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w14, w15, lsr #21 @@ -2741,7 +1428,7 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x5, xzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x6, x7 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x16, x17, lsr #63 @@ -2752,19 +1439,21 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w4 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w5, wzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w6, w7 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x0, x3 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x4 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x5, xzr # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x6, x7 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x16, x17, lsr #63 @@ -2773,6 +1462,10 @@ drps # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w0 # CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x0 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov sp, x30 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov wsp, w20 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x11, sp +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w24, wsp # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w29, w27, w25 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w9, wzr, w10 @@ -2845,15 +1538,11 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz xzr, xzr, #10, #11 @@ -2865,11 +1554,8 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfc xzr, #10, #11 @@ -2881,11 +1567,8 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ubfiz xzr, xzr, #10, #11 @@ -2903,6 +1586,7 @@ drps # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz w21, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ne #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ge #-4 @@ -2991,7 +1675,6 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - cneg xzr, x4, le # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rbit w0, w7 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rbit x18, x3 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rev16 w17, w1 @@ -3023,6 +1706,16 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr x21, x22, x23 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror w24, w25, w26 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umulh x30, x29, x28 @@ -3065,7 +1758,6 @@ drps # CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - mul x19, x20, xzr @@ -3081,24 +1773,26 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x19, x23, #24 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s3, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d4, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s31, s15, #13, hs @@ -3107,22 +1801,33 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h18, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s0, s1 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg h2, h9 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg s4, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d0, d1 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs d2, d3 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - 4.00 - 4.00 - fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, d11 @@ -3136,13 +1841,19 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s26, h27 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d28, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - - - - - - - - - 4.00 - 4.00 - fdiv d1, d2, d3 @@ -3150,17 +1861,23 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w19, h0, #32 @@ -3305,12 +2022,17 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau xzr, d0 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w15, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w3, s9 # CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x21, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x20, d31 # CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x3, v12.d[1] # CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - 0.25 0.25 0.25 0.25 fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d30, #16.00000000 @@ -3334,13 +2056,10 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxrb w12, w22, [x0] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxrh w10, w1, [x1] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxr w9, w2, [x2] @@ -3349,25 +2068,19 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlrb w24, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlrh w25, [x30] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr w26, [x29] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28] -# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - sturb w9, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - sturh wzr, [x12, #255] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stur w16, [x0, #-256] @@ -3553,16 +2266,23 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb x12, [x28, x27] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str x30, [sp] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str w20, [x4, #16380] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b5, [x11] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h23, [x15] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str s25, [x19] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str d15, [x2] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strh w17, [sp, #8190] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w23, [x3, #4095] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb wzr, [x2] @@ -3571,23 +2291,13 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str q12, [sp, #65520] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h3, [sp, x5] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h9, [x27, x6] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h11, [x29, x3, sxtx] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h12, [x28, xzr, sxtx] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 0.50 0.50 - - str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h18, [x22, w10, sxtw] -# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w17, [x23, w9, sxtw] @@ -3604,6 +2314,26 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b14, [x13, x25] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 0.50 0.50 - - str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str d5, [x26, x6] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w3, [sp, x5] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s9, [x27, x6] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w10, [x30, x7, lsl #2] @@ -3624,6 +2354,7 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x18, [x22, w10, sxtw] @@ -3655,6 +2386,8 @@ drps # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - stp d3, d5, [x9, #504] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - stp d7, d11, [x10, #-512] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stnp x20, x16, [x8] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stp x3, x6, [x16] # CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stp q17, q19, [sp, #1008] @@ -3713,10 +2446,14 @@ drps # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stnp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w3, #983055 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x10, #-6148914691236517206 -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands w4, w4, #0xf000f -# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w12, w23, w21 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w16, w15, w1, lsl #1 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w9, w4, w10, lsl #31 @@ -3731,6 +2468,10 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor x22, x16, x6 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orn x3, x5, x7, asr #2 @@ -3756,16 +2497,20 @@ drps # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adr x2, #1600 # CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adrp x21, #6553600 # CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adr x0, #262144 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #-4 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #134217724 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 0.50 0.50 - - - - - - bl test # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - br x20 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 0.50 0.50 - - - - - - blr xzr # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s new file mode 100644 index 0000000000000..6b9f9d4e45642 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s @@ -0,0 +1,251 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s + +# 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 2 0.50 U irg x0, x1 +# CHECK-NEXT: 1 2 0.50 U irg sp, x1 +# CHECK-NEXT: 1 2 0.50 U irg x0, sp +# CHECK-NEXT: 1 2 0.50 U irg x0, x1, x2 +# CHECK-NEXT: 1 2 0.50 U irg sp, x1, x2 +# CHECK-NEXT: 1 2 0.50 addg x0, x1, #0, #1 +# CHECK-NEXT: 1 2 0.50 addg sp, x2, #32, #3 +# CHECK-NEXT: 1 2 0.50 addg x0, sp, #64, #5 +# CHECK-NEXT: 1 2 0.50 addg x3, x4, #1008, #6 +# CHECK-NEXT: 1 2 0.50 addg x5, x6, #112, #15 +# CHECK-NEXT: 1 2 0.50 U subg x0, x1, #0, #1 +# CHECK-NEXT: 1 2 0.50 U subg sp, x2, #32, #3 +# CHECK-NEXT: 1 2 0.50 U subg x0, sp, #64, #5 +# CHECK-NEXT: 1 2 0.50 U subg x3, x4, #1008, #6 +# CHECK-NEXT: 1 2 0.50 U subg x5, x6, #112, #15 +# CHECK-NEXT: 1 1 0.17 gmi x0, x1, x2 +# CHECK-NEXT: 1 1 0.17 gmi x3, sp, x4 +# CHECK-NEXT: 1 1 0.17 gmi xzr, x0, x30 +# CHECK-NEXT: 1 1 0.17 gmi x30, x0, xzr +# CHECK-NEXT: 1 1 0.17 subp x0, x1, x2 +# CHECK-NEXT: 1 1 0.33 U subps x0, x1, x2 +# CHECK-NEXT: 1 1 0.17 subp x0, sp, sp +# CHECK-NEXT: 1 1 0.33 U subps x0, sp, sp +# CHECK-NEXT: 1 1 0.33 U subps xzr, x0, x1 +# CHECK-NEXT: 1 1 0.33 U subps xzr, sp, sp +# CHECK-NEXT: 2 1 0.50 * stg x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stg x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stg x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stg x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stg sp, [x1] +# CHECK-NEXT: 2 1 0.50 * stzg x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stzg x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stzg x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stzg x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stzg sp, [x1] +# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp], #16 +# CHECK-NEXT: 2 1 0.50 * st2g x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * st2g x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * st2g x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * st2g x3, [x1] +# CHECK-NEXT: 2 1 0.50 * st2g sp, [x1] +# CHECK-NEXT: 2 1 0.50 * stz2g x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stz2g x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stz2g x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stz2g x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stz2g sp, [x1] +# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp], #16 +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #-1024] +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #1008] +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stgp xzr, x1, [x2, #16] +# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2, #16] +# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2] +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #-1024]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #1008]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #-1024 +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #1008 +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2], #16 +# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2], #16 +# CHECK-NEXT: 1 4 0.33 * ldg x0, [x1] +# CHECK-NEXT: 1 4 0.33 * ldg x2, [sp, #-4096] +# CHECK-NEXT: 1 4 0.33 * ldg x3, [x4, #4080] +# CHECK-NEXT: 1 4 0.33 * U ldgm x0, [x1] +# CHECK-NEXT: 1 4 0.33 * U ldgm x1, [sp] +# CHECK-NEXT: 1 4 0.33 * U ldgm xzr, [x2] +# CHECK-NEXT: 2 1 0.50 * U stgm x0, [x1] +# CHECK-NEXT: 2 1 0.50 * U stgm x1, [sp] +# CHECK-NEXT: 2 1 0.50 * U stgm xzr, [x2] +# CHECK-NEXT: 2 1 0.50 * U stzgm x0, [x1] +# CHECK-NEXT: 2 1 0.50 * U stzgm x1, [sp] +# CHECK-NEXT: 2 1 0.50 * U stzgm xzr, [x2] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V2UnitB +# CHECK-NEXT: [0.1] - V2UnitB +# CHECK-NEXT: [1.0] - V2UnitD +# CHECK-NEXT: [1.1] - V2UnitD +# CHECK-NEXT: [2.0] - V2UnitFlg +# CHECK-NEXT: [2.1] - V2UnitFlg +# CHECK-NEXT: [2.2] - V2UnitFlg +# CHECK-NEXT: [3] - V2UnitL2 +# CHECK-NEXT: [4.0] - V2UnitL01 +# CHECK-NEXT: [4.1] - V2UnitL01 +# CHECK-NEXT: [5] - V2UnitM0 +# CHECK-NEXT: [6] - V2UnitM1 +# CHECK-NEXT: [7] - V2UnitS0 +# CHECK-NEXT: [8] - V2UnitS1 +# CHECK-NEXT: [9] - V2UnitS2 +# CHECK-NEXT: [10] - V2UnitS3 +# CHECK-NEXT: [11] - V2UnitV0 +# CHECK-NEXT: [12] - V2UnitV1 +# CHECK-NEXT: [13] - V2UnitV2 +# CHECK-NEXT: [14] - V2UnitV3 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] +# CHECK-NEXT: - - 37.00 37.00 1.33 1.33 1.33 2.00 39.00 39.00 16.50 16.50 9.00 9.00 8.00 8.00 - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions: +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, x1 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg sp, x1 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, sp +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg sp, x1, x2 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x0, x1, #0, #1 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg sp, x2, #32, #3 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x0, sp, #64, #5 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x3, x4, #1008, #6 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x5, x6, #112, #15 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x0, x1, #0, #1 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg sp, x2, #32, #3 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x0, sp, #64, #5 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x3, x4, #1008, #6 +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x5, x6, #112, #15 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x3, sp, x4 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi xzr, x0, x30 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x30, x0, xzr +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - subp x0, x1, x2 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - subp x0, sp, sp +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps x0, sp, sp +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps xzr, x0, x1 +# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps xzr, sp, sp +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x0, [x1, #-4096] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x1, [x2, #4080] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x2, [sp, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x3, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg sp, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x0, [x1, #-4096] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x1, [x2, #4080] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x2, [sp, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x3, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg sp, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x0, [x1, #-4096]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x1, [x2, #4080]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x2, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg sp, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x0, [x1, #-4096]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x1, [x2, #4080]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x2, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg sp, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x0, [x1], #-4096 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x1, [x2], #4080 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x2, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg sp, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x0, [x1], #-4096 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x1, [x2], #4080 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x2, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg sp, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x0, [x1, #-4096] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x1, [x2, #4080] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x2, [sp, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x3, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g sp, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x0, [x1, #-4096] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x1, [x2, #4080] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x2, [sp, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x3, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g sp, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x0, [x1, #-4096]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x1, [x2, #4080]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x2, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g sp, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x0, [x1, #-4096]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x1, [x2, #4080]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x2, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g sp, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x0, [x1], #-4096 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x1, [x2], #4080 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x2, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g sp, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x0, [x1], #-4096 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x1, [x2], #4080 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x2, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g sp, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [x2, #-1024] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [x2, #1008] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [sp, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp xzr, x1, [x2, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, xzr, [x2, #16] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, xzr, [x2] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2, #-1024]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2, #1008]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [sp, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp xzr, x1, [x2, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, xzr, [x2, #16]! +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2], #-1024 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2], #1008 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [sp], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp xzr, x1, [x2], #16 +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, xzr, [x2], #16 +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x0, [x1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x2, [sp, #-4096] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x3, [x4, #4080] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm x0, [x1] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm x1, [sp] +# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm xzr, [x2] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm x0, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm x1, [sp] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm xzr, [x2] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm x0, [x1] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm x1, [sp] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm xzr, [x2] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..71fd689522215 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s @@ -0,0 +1,67 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V2UnitB +# CHECK-NEXT: [0.1] - V2UnitB +# CHECK-NEXT: [1.0] - V2UnitD +# CHECK-NEXT: [1.1] - V2UnitD +# CHECK-NEXT: [2.0] - V2UnitFlg +# CHECK-NEXT: [2.1] - V2UnitFlg +# CHECK-NEXT: [2.2] - V2UnitFlg +# CHECK-NEXT: [3] - V2UnitL2 +# CHECK-NEXT: [4.0] - V2UnitL01 +# CHECK-NEXT: [4.1] - V2UnitL01 +# CHECK-NEXT: [5] - V2UnitM0 +# CHECK-NEXT: [6] - V2UnitM1 +# CHECK-NEXT: [7] - V2UnitS0 +# CHECK-NEXT: [8] - V2UnitS1 +# CHECK-NEXT: [9] - V2UnitS2 +# CHECK-NEXT: [10] - V2UnitS3 +# CHECK-NEXT: [11] - V2UnitV0 +# CHECK-NEXT: [12] - V2UnitV1 +# CHECK-NEXT: [13] - V2UnitV2 +# CHECK-NEXT: [14] - V2UnitV3 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] +# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions: +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur w7, [x24] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur x20, [x13] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurb w13, [x17] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurh w3, [x22] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb w7, [x8] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb x29, [x7] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh w17, [x19] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh x3, [x3] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursw x3, [x18] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur w3, [x27] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur x23, [x25] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurb w30, [x17] +# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s index 73fd95d6e4a5b..343753568654e 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s @@ -1,1386 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldr h3, [sp, x5] -ldr h9, [x27, x6] -ldr h10, [x30, x7, lsl #1] -str h11, [x29, x3, sxtx] -str h12, [x28, xzr, sxtx] -str h13, [x27, x5, sxtx #1] -ldr h14, [x26, w6, uxtw] -ldr h15, [x25, w7, uxtw] -ldr h16, [x24, w8, uxtw #1] -ldr h17, [x23, w9, sxtw] -str h18, [x22, w10, sxtw] -ldr h19, [x21, wzr, sxtw #1] -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 -ands w4, w4, #983055 -ands x11, x11, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1410,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.25 cmn w2, #4095 # CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.25 cmp x30, #4095 # CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.25 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.13 mov sp, x30 -# CHECK-NEXT: 1 1 0.13 mov wsp, w20 -# CHECK-NEXT: 1 1 0.13 mov x11, sp -# CHECK-NEXT: 1 1 0.13 mov w24, wsp +# CHECK-NEXT: 1 1 0.13 mov x10, #-63432 +# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.13 add w3, w5, w7 # CHECK-NEXT: 1 1 0.13 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.13 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.13 add w4, w6, wzr # CHECK-NEXT: 1 1 0.13 add w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.13 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18 @@ -1439,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.13 add x4, x6, xzr # CHECK-NEXT: 1 1 0.13 add x11, x13, x15 # CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.13 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63 @@ -1447,11 +66,13 @@ drps # CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.25 adds w3, w5, w7 +# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.25 cmn w3, w5 # CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.25 adds w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18 @@ -1465,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.25 adds x11, x13, x15 # CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63 @@ -1476,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.13 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.13 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.13 sub w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.13 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18 @@ -1489,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.13 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.13 sub x11, x13, x15 # CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.13 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.25 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.25 cmp w3, w5 # CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.25 subs w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18 @@ -1513,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.25 subs x11, x13, x15 # CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63 @@ -1523,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn wzr, w4 # CHECK-NEXT: 1 1 0.25 cmn w5, wzr # CHECK-NEXT: 1 1 0.25 cmn w6, w7 -# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21 @@ -1536,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn x5, xzr # CHECK-NEXT: 1 1 0.25 cmn x6, x7 # CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63 @@ -1547,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.25 cmp wzr, w4 # CHECK-NEXT: 1 1 0.25 cmp w5, wzr # CHECK-NEXT: 1 1 0.25 cmp w6, w7 -# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 0.50 cmp wsp, w26 +# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.25 cmp x0, x3 # CHECK-NEXT: 1 1 0.25 cmp xzr, x4 # CHECK-NEXT: 1 1 0.25 cmp x5, xzr # CHECK-NEXT: 1 1 0.25 cmp x6, x7 # CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63 @@ -1568,6 +194,10 @@ drps # CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.25 cmp wzr, w0 # CHECK-NEXT: 1 1 0.25 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.13 mov sp, x30 +# CHECK-NEXT: 1 1 0.13 mov wsp, w20 +# CHECK-NEXT: 1 1 0.13 mov x11, sp +# CHECK-NEXT: 1 1 0.13 mov w24, wsp # CHECK-NEXT: 1 1 0.13 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.13 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.13 adc w9, wzr, w10 @@ -1640,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.13 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.13 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.13 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.13 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.13 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.13 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.13 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.13 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.13 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.13 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.13 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.13 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.13 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.13 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.13 sbfiz xzr, xzr, #10, #11 @@ -1660,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.13 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.13 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.13 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11 @@ -1676,11 +299,8 @@ drps # CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.13 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.13 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.13 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.13 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.13 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.13 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.13 ubfiz xzr, xzr, #10, #11 @@ -1698,6 +318,7 @@ drps # CHECK-NEXT: 1 1 0.33 cbnz x26, #1048572 # CHECK-NEXT: 1 1 0.33 cbz wzr, #0 # CHECK-NEXT: 1 1 0.33 cbnz xzr, #0 +# CHECK-NEXT: 1 1 0.33 cbnz w21, test # CHECK-NEXT: 1 1 0.33 b.ne #4 # CHECK-NEXT: 1 1 0.33 b.ge #1048572 # CHECK-NEXT: 1 1 0.33 b.ge #-4 @@ -1786,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.13 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.13 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.13 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.13 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.13 rbit w0, w7 # CHECK-NEXT: 1 1 0.13 rbit x18, x3 # CHECK-NEXT: 1 1 0.13 rev16 w17, w1 @@ -1818,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.13 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.13 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.13 ror x27, x28, x29 +# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26 # CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28 @@ -1860,7 +490,6 @@ drps # CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21 -# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr # CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr # CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr @@ -1876,24 +505,26 @@ drps # CHECK-NEXT: 1 1 0.13 ror x19, x23, #24 # CHECK-NEXT: 1 1 0.13 ror x29, xzr, #63 # CHECK-NEXT: 1 1 0.13 ror w9, w13, #31 +# CHECK-NEXT: 1 2 1.00 fcmp h5, h21 +# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21 +# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp s3, s5 # CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe s29, s30 # CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp d4, d12 # CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe d26, d22 # CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs @@ -1902,22 +533,33 @@ drps # CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.25 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.25 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.25 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.25 fmov h18, h28 # CHECK-NEXT: 1 2 0.25 fmov s0, s1 # CHECK-NEXT: 1 2 0.25 fabs s2, s3 +# CHECK-NEXT: 1 2 0.25 fneg h2, h9 # CHECK-NEXT: 1 2 0.25 fneg s4, s5 # CHECK-NEXT: 1 8 1.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 0.50 fcvt d8, s9 # CHECK-NEXT: 1 3 0.50 fcvt h10, s11 +# CHECK-NEXT: 1 3 0.50 frintn h12, h3 # CHECK-NEXT: 1 3 0.50 frintn s12, s13 +# CHECK-NEXT: 1 3 0.50 frintp h17, h31 # CHECK-NEXT: 1 3 0.50 frintp s14, s15 +# CHECK-NEXT: 1 3 0.50 frintm h0, h21 # CHECK-NEXT: 1 3 0.50 frintm s16, s17 +# CHECK-NEXT: 1 3 0.50 frintz h10, h29 # CHECK-NEXT: 1 3 0.50 frintz s18, s19 +# CHECK-NEXT: 1 3 0.50 frinta h22, h10 # CHECK-NEXT: 1 3 0.50 frinta s20, s21 +# CHECK-NEXT: 1 3 0.50 frintx h4, h5 # CHECK-NEXT: 1 3 0.50 frintx s22, s23 # CHECK-NEXT: 1 3 0.50 frinti s24, s25 +# CHECK-NEXT: 1 3 0.50 frinti h31, h14 # CHECK-NEXT: 1 2 0.25 fmov d0, d1 # CHECK-NEXT: 1 2 0.25 fabs d2, d3 # CHECK-NEXT: 1 2 0.25 fneg d4, d5 +# CHECK-NEXT: 1 6 1.00 fsqrt h13, h24 # CHECK-NEXT: 1 13 1.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 0.50 fcvt s8, d9 # CHECK-NEXT: 1 3 0.50 fcvt h10, d11 @@ -1931,13 +573,19 @@ drps # CHECK-NEXT: 1 3 0.50 fcvt s26, h27 # CHECK-NEXT: 1 3 0.50 fcvt d28, h29 # CHECK-NEXT: 1 3 0.25 fmul s20, s19, s17 +# CHECK-NEXT: 1 6 1.00 fdiv h1, h26, h23 # CHECK-NEXT: 1 8 1.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.25 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.25 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.25 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.25 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.25 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.25 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.25 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.25 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.25 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.25 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.25 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.25 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.25 fmul d20, d19, d17 # CHECK-NEXT: 1 13 1.00 fdiv d1, d2, d3 @@ -1945,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.25 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.25 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.25 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.25 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.25 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.25 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.25 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.25 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.25 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.25 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.25 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.25 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.25 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.25 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.25 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32 @@ -2100,12 +754,17 @@ drps # CHECK-NEXT: 1 3 1.00 fcvtas x27, d28 # CHECK-NEXT: 1 3 1.00 fcvtau w29, d30 # CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 1.00 fmov h6, w5 +# CHECK-NEXT: 1 3 1.00 fmov h16, x27 +# CHECK-NEXT: 2 2 1.00 fmov w15, h31 # CHECK-NEXT: 2 2 1.00 fmov w3, s9 # CHECK-NEXT: 1 3 1.00 fmov s9, w3 +# CHECK-NEXT: 2 2 1.00 fmov x21, h14 # CHECK-NEXT: 2 2 1.00 fmov x20, d31 # CHECK-NEXT: 1 3 1.00 fmov d1, x15 # CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1] # CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.25 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.25 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.25 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.25 fmov d30, #16.00000000 @@ -2129,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 0.50 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 0.50 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 0.50 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 0.50 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 0.50 * * U stlxr w9, w2, [x2] @@ -2144,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 0.50 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 0.50 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.33 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2348,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15] +# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2366,23 +1023,13 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380] # CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760] # CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520] -# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] -# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] -# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] -# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] -# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624] # CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5] # CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7] # CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw] @@ -2399,6 +1046,26 @@ drps # CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5] # CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2] @@ -2419,6 +1086,7 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw] @@ -2450,6 +1118,8 @@ drps # CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504] # CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8] +# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16] # CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008] @@ -2508,10 +1178,14 @@ drps # CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.13 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.13 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.13 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.13 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.13 mov w3, #983055 # CHECK-NEXT: 1 1 0.13 mov x10, #-6148914691236517206 -# CHECK-NEXT: 1 1 0.25 ands w4, w4, #0xf000f -# CHECK-NEXT: 1 1 0.25 ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: 1 1 0.13 and w12, w23, w21 # CHECK-NEXT: 1 1 0.13 and w16, w15, w1, lsl #1 # CHECK-NEXT: 1 1 0.13 and w9, w4, w10, lsl #31 @@ -2526,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.13 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.13 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.13 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.13 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.13 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.13 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.13 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.13 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.13 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.13 orn x3, x5, x7, asr #2 @@ -2551,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.13 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.13 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.13 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.10 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.13 adr x2, #1600 # CHECK-NEXT: 1 1 0.13 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.13 adr x0, #262144 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #0 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #4 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 0.33 tbz w17, #16, test # CHECK-NEXT: 1 1 0.33 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 0.33 tbnz w3, #28, test # CHECK-NEXT: 1 1 0.33 b #4 # CHECK-NEXT: 1 1 0.33 b #-4 # CHECK-NEXT: 1 1 0.33 b #134217724 +# CHECK-NEXT: 2 1 0.33 bl test # CHECK-NEXT: 1 1 0.33 br x20 # CHECK-NEXT: 2 1 0.33 blr xzr # CHECK-NEXT: 1 1 0.33 U ret x10 @@ -2597,7 +1279,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] -# CHECK-NEXT: 7.33 7.33 7.33 33.00 33.00 40.50 40.50 40.50 40.50 99.00 99.00 165.00 280.25 165.25 77.92 77.92 77.92 77.92 77.92 77.92 66.00 180.00 150.00 20.00 10.00 +# CHECK-NEXT: 8.67 8.67 8.67 34.00 34.00 40.75 40.75 40.75 40.75 99.33 99.33 170.33 290.50 163.50 79.83 79.83 79.83 79.83 79.83 79.83 71.00 195.25 161.75 27.25 13.75 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions: @@ -2620,22 +1302,22 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w2, #4095 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w20, wsp, #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wsp, #2342 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x30, #4095 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x4, sp, #3822 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn wsp, #1365 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov sp, x30 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov wsp, w20 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x11, sp -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w24, wsp +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x10, #-63432 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w3, w5, w7 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w20, wzr, w4 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w24, w25, w26, lsr #18 @@ -2649,7 +1331,7 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x27, x28, x29, lsr #63 @@ -2657,11 +1339,13 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w3, w5 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w20, wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w4, w6, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w11, w13, w15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w24, w25, w26, lsr #18 @@ -2675,7 +1359,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x4, x6, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x11, x13, x15 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x27, x28, x29, lsr #63 @@ -2686,7 +1370,7 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w24, w25, w26, lsr #18 @@ -2699,18 +1383,21 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w3, w5, w7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w3, w5 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w4, w6, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w11, w13, w15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w24, w25, w26, lsr #18 @@ -2723,7 +1410,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x4, x6, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x11, x13, x15 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x27, x28, x29, lsr #63 @@ -2733,7 +1420,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w5, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w6, w7 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w14, w15, lsr #21 @@ -2746,7 +1433,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x5, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x6, x7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x16, x17, lsr #63 @@ -2757,19 +1444,21 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w5, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w6, w7 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x0, x3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp xzr, x4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x5, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x6, x7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x16, x17, lsr #63 @@ -2778,6 +1467,10 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wzr, w0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp xzr, x0 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov sp, x30 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov wsp, w20 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x11, sp +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w24, wsp # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc w29, w27, w25 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc w9, wzr, w10 @@ -2850,15 +1543,11 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz xzr, xzr, #10, #11 @@ -2870,11 +1559,8 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfc xzr, #10, #11 @@ -2886,11 +1572,8 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ubfiz xzr, xzr, #10, #11 @@ -2908,6 +1591,7 @@ drps # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz w21, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ne #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ge #-4 @@ -2996,7 +1680,6 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cneg xzr, x4, le # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rbit w0, w7 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rbit x18, x3 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rev16 w17, w1 @@ -3028,6 +1711,16 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr x21, x22, x23 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror w24, w25, w26 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umulh x30, x29, x28 @@ -3070,7 +1763,6 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - mul x19, x20, xzr @@ -3086,24 +1778,26 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x19, x23, #24 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s3, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d4, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s31, s15, #13, hs @@ -3112,22 +1806,33 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h18, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s0, s1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg h2, h9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg s4, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d0, d1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs d2, d3 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, d11 @@ -3141,13 +1846,19 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s26, h27 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d28, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv d1, d2, d3 @@ -3155,17 +1866,23 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w19, h0, #32 @@ -3310,12 +2027,17 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau xzr, d0 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w15, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w3, s9 # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x21, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x20, d31 # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x3, v12.d[1] # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - 0.25 0.25 0.25 0.25 fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d30, #16.00000000 @@ -3339,13 +2061,10 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxrb w12, w22, [x0] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxrh w10, w1, [x1] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxr w9, w2, [x2] @@ -3354,25 +2073,19 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlrb w24, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlrh w25, [x30] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr w26, [x29] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - sturb w9, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - sturh wzr, [x12, #255] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stur w16, [x0, #-256] @@ -3558,16 +2271,23 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb x12, [x28, x27] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str x30, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str w20, [x4, #16380] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b5, [x11] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h23, [x15] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str s25, [x19] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str d15, [x2] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strh w17, [sp, #8190] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w23, [x3, #4095] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb wzr, [x2] @@ -3576,23 +2296,13 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str q12, [sp, #65520] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h3, [sp, x5] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h9, [x27, x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h11, [x29, x3, sxtx] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h12, [x28, xzr, sxtx] -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 - - str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h18, [x22, w10, sxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w17, [x23, w9, sxtw] @@ -3609,6 +2319,26 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b14, [x13, x25] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 - - str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str d5, [x26, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w3, [sp, x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s9, [x27, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w10, [x30, x7, lsl #2] @@ -3629,6 +2359,7 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x18, [x22, w10, sxtw] @@ -3660,6 +2391,8 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - stp d3, d5, [x9, #504] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - stp d7, d11, [x10, #-512] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stnp x20, x16, [x8] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stp x3, x6, [x16] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stp q17, q19, [sp, #1008] @@ -3718,10 +2451,14 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stnp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w3, #983055 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x10, #-6148914691236517206 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands w4, w4, #0xf000f -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w12, w23, w21 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w16, w15, w1, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w9, w4, w10, lsl #31 @@ -3736,6 +2473,10 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor x22, x16, x6 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orn x3, x5, x7, asr #2 @@ -3761,16 +2502,20 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adr x2, #1600 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adrp x21, #6553600 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adr x0, #262144 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #-4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #134217724 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - - bl test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - br x20 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - - blr xzr # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s new file mode 100644 index 0000000000000..4b40a1ca7dc8b --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s @@ -0,0 +1,256 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s + +# 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 2 0.50 U irg x0, x1 +# CHECK-NEXT: 1 2 0.50 U irg sp, x1 +# CHECK-NEXT: 1 2 0.50 U irg x0, sp +# CHECK-NEXT: 1 2 0.50 U irg x0, x1, x2 +# CHECK-NEXT: 1 2 0.50 U irg sp, x1, x2 +# CHECK-NEXT: 1 2 0.50 addg x0, x1, #0, #1 +# CHECK-NEXT: 1 2 0.50 addg sp, x2, #32, #3 +# CHECK-NEXT: 1 2 0.50 addg x0, sp, #64, #5 +# CHECK-NEXT: 1 2 0.50 addg x3, x4, #1008, #6 +# CHECK-NEXT: 1 2 0.50 addg x5, x6, #112, #15 +# CHECK-NEXT: 1 2 0.50 U subg x0, x1, #0, #1 +# CHECK-NEXT: 1 2 0.50 U subg sp, x2, #32, #3 +# CHECK-NEXT: 1 2 0.50 U subg x0, sp, #64, #5 +# CHECK-NEXT: 1 2 0.50 U subg x3, x4, #1008, #6 +# CHECK-NEXT: 1 2 0.50 U subg x5, x6, #112, #15 +# CHECK-NEXT: 1 1 0.13 gmi x0, x1, x2 +# CHECK-NEXT: 1 1 0.13 gmi x3, sp, x4 +# CHECK-NEXT: 1 1 0.13 gmi xzr, x0, x30 +# CHECK-NEXT: 1 1 0.13 gmi x30, x0, xzr +# CHECK-NEXT: 1 1 0.13 subp x0, x1, x2 +# CHECK-NEXT: 1 1 0.25 U subps x0, x1, x2 +# CHECK-NEXT: 1 1 0.13 subp x0, sp, sp +# CHECK-NEXT: 1 1 0.25 U subps x0, sp, sp +# CHECK-NEXT: 1 1 0.25 U subps xzr, x0, x1 +# CHECK-NEXT: 1 1 0.25 U subps xzr, sp, sp +# CHECK-NEXT: 2 1 0.50 * stg x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stg x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stg x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stg x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stg sp, [x1] +# CHECK-NEXT: 2 1 0.50 * stzg x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stzg x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stzg x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stzg x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stzg sp, [x1] +# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp], #16 +# CHECK-NEXT: 2 1 0.50 * st2g x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * st2g x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * st2g x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * st2g x3, [x1] +# CHECK-NEXT: 2 1 0.50 * st2g sp, [x1] +# CHECK-NEXT: 2 1 0.50 * stz2g x0, [x1, #-4096] +# CHECK-NEXT: 2 1 0.50 * stz2g x1, [x2, #4080] +# CHECK-NEXT: 2 1 0.50 * stz2g x2, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stz2g x3, [x1] +# CHECK-NEXT: 2 1 0.50 * stz2g sp, [x1] +# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1, #-4096]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2, #4080]! +# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1], #-4096 +# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2], #4080 +# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp], #16 +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #-1024] +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #1008] +# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [sp, #16] +# CHECK-NEXT: 2 1 0.50 * stgp xzr, x1, [x2, #16] +# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2, #16] +# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2] +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #-1024]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #1008]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2, #16]! +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #-1024 +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #1008 +# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp], #16 +# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2], #16 +# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2], #16 +# CHECK-NEXT: 1 4 0.33 * ldg x0, [x1] +# CHECK-NEXT: 1 4 0.33 * ldg x2, [sp, #-4096] +# CHECK-NEXT: 1 4 0.33 * ldg x3, [x4, #4080] +# CHECK-NEXT: 1 4 0.33 * U ldgm x0, [x1] +# CHECK-NEXT: 1 4 0.33 * U ldgm x1, [sp] +# CHECK-NEXT: 1 4 0.33 * U ldgm xzr, [x2] +# CHECK-NEXT: 2 1 0.50 * U stgm x0, [x1] +# CHECK-NEXT: 2 1 0.50 * U stgm x1, [sp] +# CHECK-NEXT: 2 1 0.50 * U stgm xzr, [x2] +# CHECK-NEXT: 2 1 0.50 * U stzgm x0, [x1] +# CHECK-NEXT: 2 1 0.50 * U stzgm x1, [sp] +# CHECK-NEXT: 2 1 0.50 * U stzgm xzr, [x2] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V3UnitB +# CHECK-NEXT: [0.1] - V3UnitB +# CHECK-NEXT: [0.2] - V3UnitB +# CHECK-NEXT: [1.0] - V3UnitD +# CHECK-NEXT: [1.1] - V3UnitD +# CHECK-NEXT: [2.0] - V3UnitFlg +# CHECK-NEXT: [2.1] - V3UnitFlg +# CHECK-NEXT: [2.2] - V3UnitFlg +# CHECK-NEXT: [2.3] - V3UnitFlg +# CHECK-NEXT: [3.0] - V3UnitL12 +# CHECK-NEXT: [3.1] - V3UnitL12 +# CHECK-NEXT: [4] - V3UnitLS0 +# CHECK-NEXT: [5] - V3UnitM0 +# CHECK-NEXT: [6] - V3UnitM1 +# CHECK-NEXT: [7] - V3UnitS0 +# CHECK-NEXT: [8] - V3UnitS1 +# CHECK-NEXT: [9] - V3UnitS2 +# CHECK-NEXT: [10] - V3UnitS3 +# CHECK-NEXT: [11] - V3UnitS4 +# CHECK-NEXT: [12] - V3UnitS5 +# CHECK-NEXT: [13] - V3UnitST1 +# CHECK-NEXT: [14] - V3UnitV0 +# CHECK-NEXT: [15] - V3UnitV1 +# CHECK-NEXT: [16] - V3UnitV2 +# CHECK-NEXT: [17] - V3UnitV3 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] +# CHECK-NEXT: - - - 37.00 37.00 1.00 1.00 1.00 1.00 2.00 2.00 39.00 14.00 14.00 6.50 6.50 6.50 6.50 6.50 6.50 37.00 - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions: +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, x1 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg sp, x1 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, sp +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg sp, x1, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x0, x1, #0, #1 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg sp, x2, #32, #3 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x0, sp, #64, #5 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x3, x4, #1008, #6 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x5, x6, #112, #15 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x0, x1, #0, #1 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg sp, x2, #32, #3 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x0, sp, #64, #5 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x3, x4, #1008, #6 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x5, x6, #112, #15 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x3, sp, x4 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi xzr, x0, x30 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x30, x0, xzr +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subp x0, x1, x2 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps x0, x1, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subp x0, sp, sp +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps x0, sp, sp +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps xzr, x0, x1 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps xzr, sp, sp +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x0, [x1, #-4096] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x1, [x2, #4080] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x2, [sp, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x3, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg sp, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x0, [x1, #-4096] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x1, [x2, #4080] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x2, [sp, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x3, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg sp, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x0, [x1, #-4096]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x1, [x2, #4080]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x2, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg sp, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x0, [x1, #-4096]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x1, [x2, #4080]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x2, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg sp, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x0, [x1], #-4096 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x1, [x2], #4080 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x2, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg sp, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x0, [x1], #-4096 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x1, [x2], #4080 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x2, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg sp, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x0, [x1, #-4096] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x1, [x2, #4080] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x2, [sp, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x3, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g sp, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x0, [x1, #-4096] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x1, [x2, #4080] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x2, [sp, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x3, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g sp, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x0, [x1, #-4096]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x1, [x2, #4080]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x2, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g sp, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x0, [x1, #-4096]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x1, [x2, #4080]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x2, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g sp, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x0, [x1], #-4096 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x1, [x2], #4080 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x2, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g sp, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x0, [x1], #-4096 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x1, [x2], #4080 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x2, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g sp, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [x2, #-1024] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [x2, #1008] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [sp, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp xzr, x1, [x2, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, xzr, [x2, #16] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, xzr, [x2] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2, #-1024]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2, #1008]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [sp, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp xzr, x1, [x2, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, xzr, [x2, #16]! +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2], #-1024 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2], #1008 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [sp], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp xzr, x1, [x2], #16 +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, xzr, [x2], #16 +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x0, [x1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x2, [sp, #-4096] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x3, [x4, #4080] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm x0, [x1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm x1, [sp] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm xzr, [x2] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm x0, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm x1, [sp] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm xzr, [x2] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm x0, [x1] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm x1, [sp] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm xzr, [x2] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..a48978ce8b94d --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s @@ -0,0 +1,72 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V3UnitB +# CHECK-NEXT: [0.1] - V3UnitB +# CHECK-NEXT: [0.2] - V3UnitB +# CHECK-NEXT: [1.0] - V3UnitD +# CHECK-NEXT: [1.1] - V3UnitD +# CHECK-NEXT: [2.0] - V3UnitFlg +# CHECK-NEXT: [2.1] - V3UnitFlg +# CHECK-NEXT: [2.2] - V3UnitFlg +# CHECK-NEXT: [2.3] - V3UnitFlg +# CHECK-NEXT: [3.0] - V3UnitL12 +# CHECK-NEXT: [3.1] - V3UnitL12 +# CHECK-NEXT: [4] - V3UnitLS0 +# CHECK-NEXT: [5] - V3UnitM0 +# CHECK-NEXT: [6] - V3UnitM1 +# CHECK-NEXT: [7] - V3UnitS0 +# CHECK-NEXT: [8] - V3UnitS1 +# CHECK-NEXT: [9] - V3UnitS2 +# CHECK-NEXT: [10] - V3UnitS3 +# CHECK-NEXT: [11] - V3UnitS4 +# CHECK-NEXT: [12] - V3UnitS5 +# CHECK-NEXT: [13] - V3UnitST1 +# CHECK-NEXT: [14] - V3UnitV0 +# CHECK-NEXT: [15] - V3UnitV1 +# CHECK-NEXT: [16] - V3UnitV2 +# CHECK-NEXT: [17] - V3UnitV3 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] +# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions: +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur w7, [x24] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur x20, [x13] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurb w13, [x17] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurh w3, [x22] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb w7, [x8] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb x29, [x7] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh w17, [x19] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh x3, [x3] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursw x3, [x18] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur w3, [x27] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur x23, [x25] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurb w30, [x17] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurh w9, [x29] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s index 7ab2be5eaa365..e5c459fb704d2 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s @@ -1,1386 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Add/sub (immediate) -#------------------------------------------------------------------------------ - -add w2, w3, #4095 -add w30, w29, #1, lsl #12 -add w13, w5, #4095, lsl #12 -add x5, x7, #1638 -add w20, wsp, #801 -add wsp, wsp, #1104 -add wsp, w30, #4084 -add x0, x24, #291 -add x3, x24, #4095, lsl #12 -add x8, sp, #1074 -add sp, x29, #3816 -sub w0, wsp, #4077 -sub w4, w20, #546, lsl #12 -sub sp, sp, #288 -sub wsp, w19, #16 -adds w13, w23, #291, lsl #12 -cmn w2, #4095 -adds w20, wsp, #0 -cmn x3, #1, lsl #12 -cmp sp, #20, lsl #12 -cmp x30, #4095 -subs x4, sp, #3822 -cmn w3, #291, lsl #12 -cmn wsp, #1365 -cmn sp, #1092, lsl #12 -mov sp, x30 -mov wsp, w20 -mov x11, sp -mov w24, wsp - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -add w3, w5, w7 -add wzr, w3, w5 -add w20, wzr, w4 -add w4, w6, wzr -add w11, w13, w15 -add w9, w3, wzr, lsl #10 -add w17, w29, w20, lsl #31 -add w21, w22, w23, lsr #0 -add w24, w25, w26, lsr #18 -add w27, w28, w29, lsr #31 -add w2, w3, w4, asr #0 -add w5, w6, w7, asr #21 -add w8, w9, w10, asr #31 -add x3, x5, x7 -add xzr, x3, x5 -add x20, xzr, x4 -add x4, x6, xzr -add x11, x13, x15 -add x9, x3, xzr, lsl #10 -add x17, x29, x20, lsl #63 -add x21, x22, x23, lsr #0 -add x24, x25, x26, lsr #18 -add x27, x28, x29, lsr #63 -add x2, x3, x4, asr #0 -add x5, x6, x7, asr #21 -add x8, x9, x10, asr #63 -adds w3, w5, w7 -cmn w3, w5 -adds w20, wzr, w4 -adds w4, w6, wzr -adds w11, w13, w15 -adds w9, w3, wzr, lsl #10 -adds w17, w29, w20, lsl #31 -adds w21, w22, w23, lsr #0 -adds w24, w25, w26, lsr #18 -adds w27, w28, w29, lsr #31 -adds w2, w3, w4, asr #0 -adds w5, w6, w7, asr #21 -adds w8, w9, w10, asr #31 -adds x3, x5, x7 -cmn x3, x5 -adds x20, xzr, x4 -adds x4, x6, xzr -adds x11, x13, x15 -adds x9, x3, xzr, lsl #10 -adds x17, x29, x20, lsl #63 -adds x21, x22, x23, lsr #0 -adds x24, x25, x26, lsr #18 -adds x27, x28, x29, lsr #63 -adds x2, x3, x4, asr #0 -adds x5, x6, x7, asr #21 -adds x8, x9, x10, asr #63 -sub w3, w5, w7 -sub wzr, w3, w5 -sub w4, w6, wzr -sub w11, w13, w15 -sub w9, w3, wzr, lsl #10 -sub w17, w29, w20, lsl #31 -sub w21, w22, w23, lsr #0 -sub w24, w25, w26, lsr #18 -sub w27, w28, w29, lsr #31 -sub w2, w3, w4, asr #0 -sub w5, w6, w7, asr #21 -sub w8, w9, w10, asr #31 -sub x3, x5, x7 -sub xzr, x3, x5 -sub x4, x6, xzr -sub x11, x13, x15 -sub x9, x3, xzr, lsl #10 -sub x17, x29, x20, lsl #63 -sub x21, x22, x23, lsr #0 -sub x24, x25, x26, lsr #18 -sub x27, x28, x29, lsr #63 -sub x2, x3, x4, asr #0 -sub x5, x6, x7, asr #21 -sub x8, x9, x10, asr #63 -subs w3, w5, w7 -cmp w3, w5 -subs w4, w6, wzr -subs w11, w13, w15 -subs w9, w3, wzr, lsl #10 -subs w17, w29, w20, lsl #31 -subs w21, w22, w23, lsr #0 -subs w24, w25, w26, lsr #18 -subs w27, w28, w29, lsr #31 -subs w2, w3, w4, asr #0 -subs w5, w6, w7, asr #21 -subs w8, w9, w10, asr #31 -subs x3, x5, x7 -cmp x3, x5 -subs x4, x6, xzr -subs x11, x13, x15 -subs x9, x3, xzr, lsl #10 -subs x17, x29, x20, lsl #63 -subs x21, x22, x23, lsr #0 -subs x24, x25, x26, lsr #18 -subs x27, x28, x29, lsr #63 -subs x2, x3, x4, asr #0 -subs x5, x6, x7, asr #21 -subs x8, x9, x10, asr #63 -cmn wzr, w4 -cmn w5, wzr -cmn w6, w7 -cmn w8, w9, lsl #15 -cmn w10, w11, lsl #31 -cmn w12, w13, lsr #0 -cmn w14, w15, lsr #21 -cmn w16, w17, lsr #31 -cmn w18, w19, asr #0 -cmn w20, w21, asr #22 -cmn w22, w23, asr #31 -cmn x0, x3 -cmn xzr, x4 -cmn x5, xzr -cmn x6, x7 -cmn x8, x9, lsl #15 -cmn x10, x11, lsl #63 -cmn x12, x13, lsr #0 -cmn x14, x15, lsr #41 -cmn x16, x17, lsr #63 -cmn x18, x19, asr #0 -cmn x20, x21, asr #55 -cmn x22, x23, asr #63 -cmp w0, w3 -cmp wzr, w4 -cmp w5, wzr -cmp w6, w7 -cmp w8, w9, lsl #15 -cmp w10, w11, lsl #31 -cmp w12, w13, lsr #0 -cmp w14, w15, lsr #21 -cmp w18, w19, asr #0 -cmp w20, w21, asr #22 -cmp w22, w23, asr #31 -cmp x0, x3 -cmp xzr, x4 -cmp x5, xzr -cmp x6, x7 -cmp x8, x9, lsl #15 -cmp x10, x11, lsl #63 -cmp x12, x13, lsr #0 -cmp x14, x15, lsr #41 -cmp x16, x17, lsr #63 -cmp x18, x19, asr #0 -cmp x20, x21, asr #55 -cmp x22, x23, asr #63 -cmp wzr, w0 -cmp xzr, x0 - -#------------------------------------------------------------------------------ -# Add-subtract (shifted register) -#------------------------------------------------------------------------------ - -adc w29, w27, w25 -adc wzr, w3, w4 -adc w9, wzr, w10 -adc w20, w0, wzr -adc x29, x27, x25 -adc xzr, x3, x4 -adc x9, xzr, x10 -adc x20, x0, xzr -adcs w29, w27, w25 -adcs wzr, w3, w4 -adcs w9, wzr, w10 -adcs w20, w0, wzr -adcs x29, x27, x25 -adcs xzr, x3, x4 -adcs x9, xzr, x10 -adcs x20, x0, xzr -sbc w29, w27, w25 -sbc wzr, w3, w4 -ngc w9, w10 -sbc w20, w0, wzr -sbc x29, x27, x25 -sbc xzr, x3, x4 -ngc x9, x10 -sbc x20, x0, xzr -sbcs w29, w27, w25 -sbcs wzr, w3, w4 -ngcs w9, w10 -sbcs w20, w0, wzr -sbcs x29, x27, x25 -sbcs xzr, x3, x4 -ngcs x9, x10 -sbcs x20, x0, xzr -ngc w3, w12 -ngc wzr, w9 -ngc w23, wzr -ngc x29, x30 -ngc xzr, x0 -ngc x0, xzr -ngcs w3, w12 -ngcs wzr, w9 -ngcs w23, wzr -ngcs x29, x30 -ngcs xzr, x0 -ngcs x0, xzr - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -sbfx x1, x2, #3, #2 -asr x3, x4, #63 -asr wzr, wzr, #31 -sbfx w12, w9, #0, #1 -ubfiz x4, x5, #52, #11 -ubfx xzr, x4, #0, #1 -ubfiz x4, xzr, #1, #6 -lsr x5, x6, #12 -bfi x4, x5, #52, #11 -bfxil xzr, x4, #0, #1 -bfi x4, xzr, #1, #6 -bfxil x5, x6, #12, #52 -sxtb w1, w2 -sxtb xzr, w3 -sxth w9, w10 -sxth x0, w1 -sxtw x3, w30 -uxtb w1, w2 -uxth w9, w10 -ubfx x3, x30, #0, #32 -asr w3, w2, #0 -asr w9, w10, #31 -asr x20, x21, #63 -asr w1, wzr, #3 -lsr w3, w2, #0 -lsr w9, w10, #31 -lsr x20, x21, #63 -lsr wzr, wzr, #3 -lsr w3, w2, #0 -lsl w9, w10, #31 -lsl x20, x21, #63 -lsl w1, wzr, #3 -sbfx w9, w10, #0, #1 -sbfiz x2, x3, #63, #1 -asr x19, x20, #0 -sbfiz x9, x10, #5, #59 -asr w9, w10, #0 -sbfiz w11, w12, #31, #1 -sbfiz w13, w14, #29, #3 -sbfiz xzr, xzr, #10, #11 -sbfx w9, w10, #0, #1 -asr x2, x3, #63 -asr x19, x20, #0 -asr x9, x10, #5 -asr w9, w10, #0 -asr w11, w12, #31 -asr w13, w14, #29 -sbfx xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfi x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfi x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfi w11, w12, #31, #1 -bfi w13, w14, #29, #3 -bfi xzr, xzr, #10, #11 -bfxil w9, w10, #0, #1 -bfxil x2, x3, #63, #1 -bfxil x19, x20, #0, #64 -bfxil x9, x10, #5, #59 -bfxil w9, w10, #0, #32 -bfxil w11, w12, #31, #1 -bfxil w13, w14, #29, #3 -bfxil xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsl x2, x3, #63 -lsr x19, x20, #0 -lsl x9, x10, #5 -lsr w9, w10, #0 -lsl w11, w12, #31 -lsl w13, w14, #29 -ubfiz xzr, xzr, #10, #11 -ubfx w9, w10, #0, #1 -lsr x2, x3, #63 -lsr x19, x20, #0 -lsr x9, x10, #5 -lsr w9, w10, #0 -lsr w11, w12, #31 -lsr w13, w14, #29 -ubfx xzr, xzr, #10, #11 - -#------------------------------------------------------------------------------ -# Compare and branch (immediate) -#------------------------------------------------------------------------------ - -cbz w5, #4 -cbz x5, #0 -cbnz x2, #-4 -cbnz x26, #1048572 -cbz wzr, #0 -cbnz xzr, #0 - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -b.ne #4 -b.ge #1048572 -b.ge #-4 - -#------------------------------------------------------------------------------ -# Conditional compare (immediate) -#------------------------------------------------------------------------------ - -ccmp w1, #31, #0, eq -ccmp w3, #0, #15, hs -ccmp wzr, #15, #13, hs -ccmp x9, #31, #0, le -ccmp x3, #0, #15, gt -ccmp xzr, #5, #7, ne -ccmn w1, #31, #0, eq -ccmn w3, #0, #15, hs -ccmn wzr, #15, #13, hs -ccmn x9, #31, #0, le -ccmn x3, #0, #15, gt -ccmn xzr, #5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional compare (register) -#------------------------------------------------------------------------------ - -ccmp w1, wzr, #0, eq -ccmp w3, w0, #15, hs -ccmp wzr, w15, #13, hs -ccmp x9, xzr, #0, le -ccmp x3, x0, #15, gt -ccmp xzr, x5, #7, ne -ccmn w1, wzr, #0, eq -ccmn w3, w0, #15, hs -ccmn wzr, w15, #13, hs -ccmn x9, xzr, #0, le -ccmn x3, x0, #15, gt -ccmn xzr, x5, #7, ne - -#------------------------------------------------------------------------------ -# Conditional branch (immediate) -#------------------------------------------------------------------------------ - -csel w1, w0, w19, ne -csel wzr, w5, w9, eq -csel w9, wzr, w30, gt -csel w1, w28, wzr, mi -csel x19, x23, x29, lt -csel xzr, x3, x4, ge -csel x5, xzr, x6, hs -csel x7, x8, xzr, lo -csinc w1, w0, w19, ne -csinc wzr, w5, w9, eq -csinc w9, wzr, w30, gt -csinc w1, w28, wzr, mi -csinc x19, x23, x29, lt -csinc xzr, x3, x4, ge -csinc x5, xzr, x6, hs -csinc x7, x8, xzr, lo -csinv w1, w0, w19, ne -csinv wzr, w5, w9, eq -csinv w9, wzr, w30, gt -csinv w1, w28, wzr, mi -csinv x19, x23, x29, lt -csinv xzr, x3, x4, ge -csinv x5, xzr, x6, hs -csinv x7, x8, xzr, lo -csneg w1, w0, w19, ne -csneg wzr, w5, w9, eq -csneg w9, wzr, w30, gt -csneg w1, w28, wzr, mi -csneg x19, x23, x29, lt -csneg xzr, x3, x4, ge -csneg x5, xzr, x6, hs -csneg x7, x8, xzr, lo -cset w3, eq -cset x9, pl -csetm w20, ne -csetm x30, ge -csinc w2, wzr, wzr, al -csinv x3, xzr, xzr, nv -cinc w3, w5, gt -cinc wzr, w4, le -cset w9, lt -cinc x3, x5, gt -cinc xzr, x4, le -cset x9, lt -csinc w5, w6, w6, nv -csinc x1, x2, x2, al -cinv w3, w5, gt -cinv wzr, w4, le -csetm w9, lt -cinv x3, x5, gt -cinv xzr, x4, le -csetm x9, lt -csinv x1, x0, x0, al -csinv w9, w8, w8, nv -cneg w3, w5, gt -cneg wzr, w4, le -cneg w9, wzr, lt -cneg x3, x5, gt -cneg xzr, x4, le -cneg x9, xzr, lt -csneg x4, x8, x8, al -csinv w9, w8, w8, nv - -#------------------------------------------------------------------------------ -# Data-processing (1 source) -#------------------------------------------------------------------------------ - -rbit w0, w7 -rbit x18, x3 -rev16 w17, w1 -rev16 x5, x2 -rev w18, w0 -rev32 x20, x1 -rev x22, x2 -clz w24, w3 -clz x26, x4 -cls w3, w5 -cls x20, x5 - -#------------------------------------------------------------------------------ -# Data-processing (2 source) -#------------------------------------------------------------------------------ - -udiv w0, w7, w10 -udiv x9, x22, x4 -sdiv w12, w21, w0 -sdiv x13, x2, x1 -lsl w11, w12, w13 -lsl x14, x15, x16 -lsr w17, w18, w19 -lsr x20, x21, x22 -asr w23, w24, w25 -asr x26, x27, x28 -ror w0, w1, w2 -ror x3, x4, x5 -lsl w6, w7, w8 -lsl x9, x10, x11 -lsr w12, w13, w14 -lsr x15, x16, x17 -asr w18, w19, w20 -asr x21, x22, x23 -ror w24, w25, w26 -ror x27, x28, x29 - -#------------------------------------------------------------------------------ -# Data-processing (3 sources) -#------------------------------------------------------------------------------ - -smulh x30, x29, x28 -smulh xzr, x27, x26 -umulh x30, x29, x28 -umulh x23, x30, xzr -madd w1, w3, w7, w4 -madd wzr, w0, w9, w11 -madd w13, wzr, w4, w4 -madd w19, w30, wzr, w29 -mul w4, w5, w6 -madd x1, x3, x7, x4 -madd xzr, x0, x9, x11 -madd x13, xzr, x4, x4 -madd x19, x30, xzr, x29 -mul x4, x5, x6 -msub w1, w3, w7, w4 -msub wzr, w0, w9, w11 -msub w13, wzr, w4, w4 -msub w19, w30, wzr, w29 -mneg w4, w5, w6 -msub x1, x3, x7, x4 -msub xzr, x0, x9, x11 -msub x13, xzr, x4, x4 -msub x19, x30, xzr, x29 -mneg x4, x5, x6 -smaddl x3, w5, w2, x9 -smaddl xzr, w10, w11, x12 -smaddl x13, wzr, w14, x15 -smaddl x16, w17, wzr, x18 -smull x19, w20, w21 -smsubl x3, w5, w2, x9 -smsubl xzr, w10, w11, x12 -smsubl x13, wzr, w14, x15 -smsubl x16, w17, wzr, x18 -smnegl x19, w20, w21 -umaddl x3, w5, w2, x9 -umaddl xzr, w10, w11, x12 -umaddl x13, wzr, w14, x15 -umaddl x16, w17, wzr, x18 -umull x19, w20, w21 -umsubl x3, w5, w2, x9 -umsubl x16, w17, wzr, x18 -umnegl x19, w20, w21 -smulh x30, x29, x28 -smulh x23, x22, xzr -umulh x23, x22, xzr -mul x19, x20, xzr -mneg w21, w22, w23 -smull x11, w13, w17 -umull x11, w13, w17 -smnegl x11, w13, w17 -umnegl x11, w13, w17 - -#------------------------------------------------------------------------------ -# Extract (immediate) -#------------------------------------------------------------------------------ - -extr w3, w5, w7, #0 -extr w11, w13, w17, #31 -extr x3, x5, x7, #15 -extr x11, x13, x17, #63 -ror x19, x23, #24 -ror x29, xzr, #63 -ror w9, w13, #31 - -#------------------------------------------------------------------------------ -# Floating-point compare -#------------------------------------------------------------------------------ - -fcmp s3, s5 -fcmp s31, #0.0 -fcmp s31, #0.0 -fcmpe s29, s30 -fcmpe s15, #0.0 -fcmpe s15, #0.0 -fcmp d4, d12 -fcmp d23, #0.0 -fcmp d23, #0.0 -fcmpe d26, d22 -fcmpe d29, #0.0 -fcmpe d29, #0.0 - -#------------------------------------------------------------------------------ -# Floating-point conditional compare -#------------------------------------------------------------------------------ - -fccmp s1, s31, #0, eq -fccmp s3, s0, #15, hs -fccmp s31, s15, #13, hs -fccmp d9, d31, #0, le -fccmp d3, d0, #15, gt -fccmp d31, d5, #7, ne -fccmpe s1, s31, #0, eq -fccmpe s3, s0, #15, hs -fccmpe s31, s15, #13, hs -fccmpe d9, d31, #0, le -fccmpe d3, d0, #15, gt -fccmpe d31, d5, #7, ne - -#------------------------------------------------------------------------------- -# Floating-point conditional compare -#------------------------------------------------------------------------------- - -fcsel s3, s20, s9, pl -fcsel d9, d10, d11, mi - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmov s0, s1 -fabs s2, s3 -fneg s4, s5 -fsqrt s6, s7 -fcvt d8, s9 -fcvt h10, s11 -frintn s12, s13 -frintp s14, s15 -frintm s16, s17 -frintz s18, s19 -frinta s20, s21 -frintx s22, s23 -frinti s24, s25 -fmov d0, d1 -fabs d2, d3 -fneg d4, d5 -fsqrt d6, d7 -fcvt s8, d9 -fcvt h10, d11 -frintn d12, d13 -frintp d14, d15 -frintm d16, d17 -frintz d18, d19 -frinta d20, d21 -frintx d22, d23 -frinti d24, d25 -fcvt s26, h27 -fcvt d28, h29 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (2 sources) -#------------------------------------------------------------------------------ - -fmul s20, s19, s17 -fdiv s1, s2, s3 -fadd s4, s5, s6 -fsub s7, s8, s9 -fmax s10, s11, s12 -fmin s13, s14, s15 -fmaxnm s16, s17, s18 -fminnm s19, s20, s21 -fnmul s22, s23, s2 -fmul d20, d19, d17 -fdiv d1, d2, d3 -fadd d4, d5, d6 -fsub d7, d8, d9 -fmax d10, d11, d12 -fmin d13, d14, d15 -fmaxnm d16, d17, d18 -fminnm d19, d20, d21 -fnmul d22, d23, d24 - -#------------------------------------------------------------------------------ -# Floating-point data-processing (1 source) -#------------------------------------------------------------------------------ - -fmadd s3, s5, s6, s31 -fmadd d3, d13, d0, d23 -fmsub s3, s5, s6, s31 -fmsub d3, d13, d0, d23 -fnmadd s3, s5, s6, s31 -fnmadd d3, d13, d0, d23 -fnmsub s3, s5, s6, s31 -fnmsub d3, d13, d0, d23 - -#------------------------------------------------------------------------------ -# Floating-point <-> fixed-point conversion -#------------------------------------------------------------------------------ - -fcvtzs w3, h5, #1 -fcvtzs wzr, h20, #13 -fcvtzs w19, h0, #32 -fcvtzs x3, h5, #1 -fcvtzs x12, h30, #45 -fcvtzs x19, h0, #64 -fcvtzs w3, s5, #1 -fcvtzs wzr, s20, #13 -fcvtzs w19, s0, #32 -fcvtzs x3, s5, #1 -fcvtzs x12, s30, #45 -fcvtzs x19, s0, #64 -fcvtzs w3, d5, #1 -fcvtzs wzr, d20, #13 -fcvtzs w19, d0, #32 -fcvtzs x3, d5, #1 -fcvtzs x12, d30, #45 -fcvtzs x19, d0, #64 -fcvtzu w3, h5, #1 -fcvtzu wzr, h20, #13 -fcvtzu w19, h0, #32 -fcvtzu x3, h5, #1 -fcvtzu x12, h30, #45 -fcvtzu x19, h0, #64 -fcvtzu w3, s5, #1 -fcvtzu wzr, s20, #13 -fcvtzu w19, s0, #32 -fcvtzu x3, s5, #1 -fcvtzu x12, s30, #45 -fcvtzu x19, s0, #64 -fcvtzu w3, d5, #1 -fcvtzu wzr, d20, #13 -fcvtzu w19, d0, #32 -fcvtzu x3, d5, #1 -fcvtzu x12, d30, #45 -fcvtzu x19, d0, #64 -scvtf h23, w19, #1 -scvtf h31, wzr, #20 -scvtf h14, w0, #32 -scvtf h23, x19, #1 -scvtf h31, xzr, #20 -scvtf h14, x0, #64 -scvtf s23, w19, #1 -scvtf s31, wzr, #20 -scvtf s14, w0, #32 -scvtf s23, x19, #1 -scvtf s31, xzr, #20 -scvtf s14, x0, #64 -scvtf d23, w19, #1 -scvtf d31, wzr, #20 -scvtf d14, w0, #32 -scvtf d23, x19, #1 -scvtf d31, xzr, #20 -scvtf d14, x0, #64 -ucvtf h23, w19, #1 -ucvtf h31, wzr, #20 -ucvtf h14, w0, #32 -ucvtf h23, x19, #1 -ucvtf h31, xzr, #20 -ucvtf h14, x0, #64 -ucvtf s23, w19, #1 -ucvtf s31, wzr, #20 -ucvtf s14, w0, #32 -ucvtf s23, x19, #1 -ucvtf s31, xzr, #20 -ucvtf s14, x0, #64 -ucvtf d23, w19, #1 -ucvtf d31, wzr, #20 -ucvtf d14, w0, #32 -ucvtf d23, x19, #1 -ucvtf d31, xzr, #20 -ucvtf d14, x0, #64 - -#------------------------------------------------------------------------------ -# Floating-point <-> integer conversion -#------------------------------------------------------------------------------ - -fcvtns w3, h31 -fcvtns xzr, h12 -fcvtnu wzr, h12 -fcvtnu x0, h0 -fcvtps wzr, h9 -fcvtps x12, h20 -fcvtpu w30, h23 -fcvtpu x29, h3 -fcvtms w2, h3 -fcvtms x4, h5 -fcvtmu w6, h7 -fcvtmu x8, h9 -fcvtzs w10, h11 -fcvtzs x12, h13 -fcvtzu w14, h15 -fcvtzu x15, h16 -scvtf h17, w18 -scvtf h19, x20 -ucvtf h21, w22 -scvtf h23, x24 -fcvtas w25, h26 -fcvtas x27, h28 -fcvtau w29, h30 -fcvtau xzr, h0 -fcvtns w3, s31 -fcvtns xzr, s12 -fcvtnu wzr, s12 -fcvtnu x0, s0 -fcvtps wzr, s9 -fcvtps x12, s20 -fcvtpu w30, s23 -fcvtpu x29, s3 -fcvtms w2, s3 -fcvtms x4, s5 -fcvtmu w6, s7 -fcvtmu x8, s9 -fcvtzs w10, s11 -fcvtzs x12, s13 -fcvtzu w14, s15 -fcvtzu x15, s16 -scvtf s17, w18 -scvtf s19, x20 -ucvtf s21, w22 -scvtf s23, x24 -fcvtas w25, s26 -fcvtas x27, s28 -fcvtau w29, s30 -fcvtau xzr, s0 -fcvtns w3, d31 -fcvtns xzr, d12 -fcvtnu wzr, d12 -fcvtnu x0, d0 -fcvtps wzr, d9 -fcvtps x12, d20 -fcvtpu w30, d23 -fcvtpu x29, d3 -fcvtms w2, d3 -fcvtms x4, d5 -fcvtmu w6, d7 -fcvtmu x8, d9 -fcvtzs w10, d11 -fcvtzs x12, d13 -fcvtzu w14, d15 -fcvtzu x15, d16 -scvtf d17, w18 -scvtf d19, x20 -ucvtf d21, w22 -ucvtf d23, x24 -fcvtas w25, d26 -fcvtas x27, d28 -fcvtau w29, d30 -fcvtau xzr, d0 -fmov w3, s9 -fmov s9, w3 -fmov x20, d31 -fmov d1, x15 -fmov x3, v12.d[1] -fmov v1.d[1], x19 - -#------------------------------------------------------------------------------ -# Floating-point immediate -#------------------------------------------------------------------------------ - -fmov s2, #0.12500000 -fmov s3, #1.00000000 -fmov d30, #16.00000000 -fmov s4, #1.06250000 -fmov d10, #1.93750000 -fmov s12, #-1.00000000 -fmov d16, #8.50000000 - -#------------------------------------------------------------------------------ -# Load-register (literal) -#------------------------------------------------------------------------------ - -ldr w3, #0 -ldr x29, #4 -ldrsw xzr, #-4 -ldr s0, #8 -ldr d0, #1048572 -ldr q0, #-1048576 -prfm pldl1strm, #0 -prfm #22, #0 - -#------------------------------------------------------------------------------ -# Load/store exclusive -#------------------------------------------------------------------------------ - -stxrb w18, w8, [sp] -stxrh w24, w15, [x16] -stxr w5, w6, [x17] -stxr w1, x10, [x21] -ldxrb w30, [x0] -ldxrh w17, [x4] -ldxr w22, [sp] -ldxr x11, [x29] -ldxr x11, [x29] -ldxr x11, [x29] -stxp w12, w11, w10, [sp] -stxp wzr, x27, x9, [x12] -ldxp w0, wzr, [sp] -ldxp x17, x0, [x18] -ldxp x17, x0, [x18] -stlxrb w12, w22, [x0] -stlxrh w10, w1, [x1] -stlxr w9, w2, [x2] -stlxr w9, x3, [sp] -ldaxrb w8, [x4] -ldaxrh w7, [x5] -ldaxr w6, [sp] -ldaxr x5, [x6] -ldaxr x5, [x6] -ldaxr x5, [x6] -stlxp w4, w5, w6, [sp] -stlxp wzr, x6, x7, [x1] -ldaxp w5, w18, [sp] -ldaxp x6, x19, [x22] -ldaxp x6, x19, [x22] -stlrb w24, [sp] -stlrh w25, [x30] -stlr w26, [x29] -stlr x27, [x28] -stlr x27, [x28] -stlr x27, [x28] -ldarb w23, [sp] -ldarh w22, [x30] -ldar wzr, [x29] -ldar x21, [x28] -ldar x21, [x28] -ldar x21, [x28] - -#------------------------------------------------------------------------------ -# Load/store (unscaled immediate) -#------------------------------------------------------------------------------ - -sturb w9, [sp] -sturh wzr, [x12, #255] -stur w16, [x0, #-256] -stur x28, [x14, #1] -ldurb w1, [x20, #255] -ldurh w20, [x1, #255] -ldur w12, [sp, #255] -ldur xzr, [x12, #255] -ldursb x9, [x7, #-256] -ldursh x17, [x19, #-256] -ldursw x20, [x15, #-256] -prfum pldl2keep, [sp, #-256] -ldursb w19, [x1, #-256] -ldursh w15, [x21, #-256] -stur b0, [sp, #1] -stur h12, [x12, #-1] -stur s15, [x0, #255] -stur d31, [x5, #25] -stur q9, [x5] -ldur b3, [sp] -ldur h5, [x4, #-256] -ldur s7, [x12, #-1] -ldur d11, [x19, #4] -ldur q13, [x1, #2] - -#------------------------------------------------------------------------------ -# Load/store (immediate post-indexed) -#------------------------------------------------------------------------------ - -strb w9, [x2], #255 -strb w10, [x3], #1 -strb w10, [x3], #-256 -strh w9, [x2], #255 -strh w9, [x2], #1 -strh w10, [x3], #-256 -str w19, [sp], #255 -str w20, [x30], #1 -str w21, [x12], #-256 -str xzr, [x9], #255 -str x2, [x3], #1 -str x19, [x12], #-256 -ldrb w9, [x2], #255 -ldrb w10, [x3], #1 -ldrb w10, [x3], #-256 -ldrh w9, [x2], #255 -ldrh w9, [x2], #1 -ldrh w10, [x3], #-256 -ldr w19, [sp], #255 -ldr w20, [x30], #1 -ldr w21, [x12], #-256 -ldr xzr, [x9], #255 -ldr x2, [x3], #1 -ldr x19, [x12], #-256 -ldrsb xzr, [x9], #255 -ldrsb x2, [x3], #1 -ldrsb x19, [x12], #-256 -ldrsh xzr, [x9], #255 -ldrsh x2, [x3], #1 -ldrsh x19, [x12], #-256 -ldrsw xzr, [x9], #255 -ldrsw x2, [x3], #1 -ldrsw x19, [x12], #-256 -ldrsb wzr, [x9], #255 -ldrsb w2, [x3], #1 -ldrsb w19, [x12], #-256 -ldrsh wzr, [x9], #255 -ldrsh w2, [x3], #1 -ldrsh w19, [x12], #-256 -str b0, [x0], #255 -str b3, [x3], #1 -str b5, [sp], #-256 -str h10, [x10], #255 -str h13, [x23], #1 -str h15, [sp], #-256 -str s20, [x20], #255 -str s23, [x23], #1 -str s25, [x0], #-256 -str d20, [x20], #255 -str d23, [x23], #1 -str d25, [x0], #-256 -ldr b0, [x0], #255 -ldr b3, [x3], #1 -ldr b5, [sp], #-256 -ldr h10, [x10], #255 -ldr h13, [x23], #1 -ldr h15, [sp], #-256 -ldr s20, [x20], #255 -ldr s23, [x23], #1 -ldr s25, [x0], #-256 -ldr d20, [x20], #255 -ldr d23, [x23], #1 -ldr d25, [x0], #-256 -ldr q20, [x1], #255 -ldr q23, [x9], #1 -ldr q25, [x20], #-256 -str q10, [x1], #255 -str q22, [sp], #1 -str q21, [x20], #-256 - -#------------------------------------------------------------------------------- -# Load-store register (immediate pre-indexed) -#------------------------------------------------------------------------------- - -ldr x3, [x4, #0]! -strb w9, [x2, #255]! -strb w10, [x3, #1]! -strb w10, [x3, #-256]! -strh w9, [x2, #255]! -strh w9, [x2, #1]! -strh w10, [x3, #-256]! -str w19, [sp, #255]! -str w20, [x30, #1]! -str w21, [x12, #-256]! -str xzr, [x9, #255]! -str x2, [x3, #1]! -str x19, [x12, #-256]! -ldrb w9, [x2, #255]! -ldrb w10, [x3, #1]! -ldrb w10, [x3, #-256]! -ldrh w9, [x2, #255]! -ldrh w9, [x2, #1]! -ldrh w10, [x3, #-256]! -ldr w19, [sp, #255]! -ldr w20, [x30, #1]! -ldr w21, [x12, #-256]! -ldr xzr, [x9, #255]! -ldr x2, [x3, #1]! -ldr x19, [x12, #-256]! -ldrsb xzr, [x9, #255]! -ldrsb x2, [x3, #1]! -ldrsb x19, [x12, #-256]! -ldrsh xzr, [x9, #255]! -ldrsh x2, [x3, #1]! -ldrsh x19, [x12, #-256]! -ldrsw xzr, [x9, #255]! -ldrsw x2, [x3, #1]! -ldrsw x19, [x12, #-256]! -ldrsb wzr, [x9, #255]! -ldrsb w2, [x3, #1]! -ldrsb w19, [x12, #-256]! -ldrsh wzr, [x9, #255]! -ldrsh w2, [x3, #1]! -ldrsh w19, [x12, #-256]! -str b0, [x0, #255]! -str b3, [x3, #1]! -str b5, [sp, #-256]! -str h10, [x10, #255]! -str h13, [x23, #1]! -str h15, [sp, #-256]! -str s20, [x20, #255]! -str s23, [x23, #1]! -str s25, [x0, #-256]! -str d20, [x20, #255]! -str d23, [x23, #1]! -str d25, [x0, #-256]! -ldr b0, [x0, #255]! -ldr b3, [x3, #1]! -ldr b5, [sp, #-256]! -ldr h10, [x10, #255]! -ldr h13, [x23, #1]! -ldr h15, [sp, #-256]! -ldr s20, [x20, #255]! -ldr s23, [x23, #1]! -ldr s25, [x0, #-256]! -ldr d20, [x20, #255]! -ldr d23, [x23, #1]! -ldr d25, [x0, #-256]! -ldr q20, [x1, #255]! -ldr q23, [x9, #1]! -ldr q25, [x20, #-256]! -str q10, [x1, #255]! -str q22, [sp, #1]! -str q21, [x20, #-256]! - -#------------------------------------------------------------------------------ -# Load/store (unprivileged) -#------------------------------------------------------------------------------ - -sttrb w9, [sp] -sttrh wzr, [x12, #255] -sttr w16, [x0, #-256] -sttr x28, [x14, #1] -ldtrb w1, [x20, #255] -ldtrh w20, [x1, #255] -ldtr w12, [sp, #255] -ldtr xzr, [x12, #255] -ldtrsb x9, [x7, #-256] -ldtrsh x17, [x19, #-256] -ldtrsw x20, [x15, #-256] -ldtrsb w19, [x1, #-256] -ldtrsh w15, [x21, #-256] - -#------------------------------------------------------------------------------ -# Load/store (unsigned immediate) -#------------------------------------------------------------------------------ - -ldr x4, [x29] -ldr x30, [x12, #32760] -ldr x20, [sp, #8] -ldr xzr, [sp] -ldr w2, [sp] -ldr w17, [sp, #16380] -ldr w13, [x2, #4] -ldrsw x2, [x5, #4] -ldrsw x23, [sp, #16380] -ldrh w2, [x4] -ldrsh w23, [x6, #8190] -ldrsh wzr, [sp, #2] -ldrsh x29, [x2, #2] -ldrb w26, [x3, #121] -ldrb w12, [x2] -ldrsb w27, [sp, #4095] -ldrsb xzr, [x15] -str x30, [sp] -str w20, [x4, #16380] -strh w17, [sp, #8190] -strb w23, [x3, #4095] -strb wzr, [x2] -ldr b31, [sp, #4095] -ldr h20, [x2, #8190] -ldr s10, [x19, #16380] -ldr d3, [x10, #32760] -str q12, [sp, #65520] - -#------------------------------------------------------------------------------ -# Load/store (register offset) -#------------------------------------------------------------------------------ - -ldr h3, [sp, x5] -ldr h9, [x27, x6] -ldr h10, [x30, x7, lsl #1] -str h11, [x29, x3, sxtx] -str h12, [x28, xzr, sxtx] -str h13, [x27, x5, sxtx #1] -ldr h14, [x26, w6, uxtw] -ldr h15, [x25, w7, uxtw] -ldr h16, [x24, w8, uxtw #1] -ldr h17, [x23, w9, sxtw] -str h18, [x22, w10, sxtw] -ldr h19, [x21, wzr, sxtw #1] -ldrb w3, [sp, x5] -ldrb w9, [x27, x6] -ldrsb w10, [x30, x7] -ldrb w11, [x29, x3, sxtx] -strb w12, [x28, xzr, sxtx] -ldrb w14, [x26, w6, uxtw] -ldrsb w15, [x25, w7, uxtw] -ldrb w17, [x23, w9, sxtw] -ldrsb x18, [x22, w10, sxtw] -ldrsh w3, [sp, x5] -ldrsh w9, [x27, x6] -ldrh w10, [x30, x7, lsl #1] -strh w11, [x29, x3, sxtx] -ldrh w12, [x28, xzr, sxtx] -ldrsh x13, [x27, x5, sxtx #1] -ldrh w14, [x26, w6, uxtw] -ldrh w15, [x25, w7, uxtw] -ldrsh w16, [x24, w8, uxtw #1] -ldrh w17, [x23, w9, sxtw] -ldrh w18, [x22, w10, sxtw] -strh w19, [x21, wzr, sxtw #1] -ldr w3, [sp, x5] -ldr s9, [x27, x6] -ldr w10, [x30, x7, lsl #2] -ldr w11, [x29, x3, sxtx] -str s12, [x28, xzr, sxtx] -str w13, [x27, x5, sxtx #2] -str w14, [x26, w6, uxtw] -ldr w15, [x25, w7, uxtw] -ldr w16, [x24, w8, uxtw #2] -ldrsw x17, [x23, w9, sxtw] -ldr w18, [x22, w10, sxtw] -ldrsw x19, [x21, wzr, sxtw #2] -ldr x3, [sp, x5] -str x9, [x27, x6] -ldr d10, [x30, x7, lsl #3] -str x11, [x29, x3, sxtx] -ldr x12, [x28, xzr, sxtx] -ldr x13, [x27, x5, sxtx #3] -prfm pldl1keep, [x26, w6, uxtw] -ldr x15, [x25, w7, uxtw] -ldr x16, [x24, w8, uxtw #3] -ldr x17, [x23, w9, sxtw] -ldr x18, [x22, w10, sxtw] -str d19, [x21, wzr, sxtw #3] -ldr q3, [sp, x5] -ldr q9, [x27, x6] -ldr q10, [x30, x7, lsl #4] -str q11, [x29, x3, sxtx] -str q12, [x28, xzr, sxtx] -str q13, [x27, x5, sxtx #4] -ldr q14, [x26, w6, uxtw] -ldr q15, [x25, w7, uxtw] -ldr q16, [x24, w8, uxtw #4] -ldr q17, [x23, w9, sxtw] -str q18, [x22, w10, sxtw] -ldr q19, [x21, wzr, sxtw #4] - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp] -stp wzr, w9, [sp, #252] -ldp w2, wzr, [sp, #-256] -ldp w9, w10, [sp, #4] -ldpsw x9, x10, [sp, #4] -ldpsw x9, x10, [x2, #-256] -ldpsw x20, x30, [sp, #252] -ldp x21, x29, [x2, #504] -ldp x22, x23, [x3, #-512] -ldp x24, x25, [x4, #8] -ldp s29, s28, [sp, #252] -stp s27, s26, [sp, #-256] -ldp s1, s2, [x3, #44] -stp d3, d5, [x9, #504] -stp d7, d11, [x10, #-512] -ldp d2, d3, [x30, #-8] -stp q3, q5, [sp] -stp q17, q19, [sp, #1008] -ldp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Load/store register pair (post-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp], #0 -stp wzr, w9, [sp], #252 -ldp w2, wzr, [sp], #-256 -ldp w9, w10, [sp], #4 -ldpsw x9, x10, [sp], #4 -ldpsw x9, x10, [x2], #-256 -ldpsw x20, x30, [sp], #252 -ldp x21, x29, [x2], #504 -ldp x22, x23, [x3], #-512 -ldp x24, x25, [x4], #8 -ldp s29, s28, [sp], #252 -stp s27, s26, [sp], #-256 -ldp s1, s2, [x3], #44 -stp d3, d5, [x9], #504 -stp d7, d11, [x10], #-512 -ldp d2, d3, [x30], #-8 -stp q3, q5, [sp], #0 -stp q17, q19, [sp], #1008 -ldp q23, q29, [x1], #-1024 - -#------------------------------------------------------------------------------ -# Load/store register pair (pre-indexed) -#------------------------------------------------------------------------------ - -ldp w3, w5, [sp, #0]! -stp wzr, w9, [sp, #252]! -ldp w2, wzr, [sp, #-256]! -ldp w9, w10, [sp, #4]! -ldpsw x9, x10, [sp, #4]! -ldpsw x9, x10, [x2, #-256]! -ldpsw x20, x30, [sp, #252]! -ldp x21, x29, [x2, #504]! -ldp x22, x23, [x3, #-512]! -ldp x24, x25, [x4, #8]! -ldp s29, s28, [sp, #252]! -stp s27, s26, [sp, #-256]! -ldp s1, s2, [x3, #44]! -stp d3, d5, [x9, #504]! -stp d7, d11, [x10, #-512]! -ldp d2, d3, [x30, #-8]! -stp q3, q5, [sp, #0]! -stp q17, q19, [sp, #1008]! -ldp q23, q29, [x1, #-1024]! - -#------------------------------------------------------------------------------ -# Load/store register pair (offset) -#------------------------------------------------------------------------------ - -ldnp w3, w5, [sp] -stnp wzr, w9, [sp, #252] -ldnp w2, wzr, [sp, #-256] -ldnp w9, w10, [sp, #4] -ldnp x21, x29, [x2, #504] -ldnp x22, x23, [x3, #-512] -ldnp x24, x25, [x4, #8] -ldnp s29, s28, [sp, #252] -stnp s27, s26, [sp, #-256] -ldnp s1, s2, [x3, #44] -stnp d3, d5, [x9, #504] -stnp d7, d11, [x10, #-512] -ldnp d2, d3, [x30, #-8] -stnp q3, q5, [sp] -stnp q17, q19, [sp, #1008] -ldnp q23, q29, [x1, #-1024] - -#------------------------------------------------------------------------------ -# Logical (immediate) -#------------------------------------------------------------------------------ - -mov w3, #983055 -mov x10, #-6148914691236517206 -ands w4, w4, #983055 -ands x11, x11, #-6148914691236517206 - -#------------------------------------------------------------------------------ -# Logical (shifted register) -#------------------------------------------------------------------------------ - -and w12, w23, w21 -and w16, w15, w1, lsl #1 -and w9, w4, w10, lsl #31 -and w3, w30, w11 -and x3, x5, x7, lsl #63 -and x5, x14, x19, asr #4 -and w3, w17, w19, ror #31 -and w0, w2, wzr, lsr #17 -and w3, w30, w11, asr #2 -and xzr, x4, x26 -and w3, wzr, w20, ror #2 -and x7, x20, xzr, asr #63 -bic x13, x20, x14, lsl #47 -bic w2, w7, w9 -orr w2, w7, w0, asr #31 -orr x8, x9, x10, lsl #12 -orn x3, x5, x7, asr #2 -orn w2, w5, w29 -ands w7, wzr, w9, lsl #1 -ands x3, x5, x20, ror #63 -bics w3, w5, w7 -bics x3, xzr, x3, lsl #1 -tst w3, w7, lsl #31 -tst x2, x20, asr #2 -mov x3, x6 -mov x3, xzr -mov wzr, w2 -mov w3, w5 - -#------------------------------------------------------------------------------ -# Move wide (immediate) -#------------------------------------------------------------------------------ - -movz w2, #0, lsl #16 -mov w2, #-1235 -mov x2, #5299989643264 -mov x2, #0 -movk w3, #0 -movz x4, #0, lsl #16 -movk w5, #0, lsl #16 -movz x6, #0, lsl #32 -movk x7, #0, lsl #32 -movz x8, #0, lsl #48 -movk x9, #0, lsl #48 - -#------------------------------------------------------------------------------ -# PC-relative addressing -#------------------------------------------------------------------------------ - -adr x2, #1600 -adrp x21, #6553600 -adr x0, #262144 - -#------------------------------------------------------------------------------ -# Test and branch (immediate) -#------------------------------------------------------------------------------ - -tbz x12, #62, #0 -tbz x12, #62, #4 -tbz x12, #62, #-32768 -tbnz x12, #60, #32764 - -#------------------------------------------------------------------------------ -# Unconditional branch (immediate) -#------------------------------------------------------------------------------ - -b #4 -b #-4 -b #134217724 - -#------------------------------------------------------------------------------ -# Unconditional branch (register) -#------------------------------------------------------------------------------ - -br x20 -blr xzr -ret x10 -ret -eret -drps +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -1410,22 +29,22 @@ drps # CHECK-NEXT: 1 1 0.25 cmn w2, #4095 # CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0 # CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12 +# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342 # CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12 # CHECK-NEXT: 1 1 0.25 cmp x30, #4095 # CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822 # CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12 # CHECK-NEXT: 1 1 0.25 cmn wsp, #1365 # CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12 -# CHECK-NEXT: 1 1 0.13 mov sp, x30 -# CHECK-NEXT: 1 1 0.13 mov wsp, w20 -# CHECK-NEXT: 1 1 0.13 mov x11, sp -# CHECK-NEXT: 1 1 0.13 mov w24, wsp +# CHECK-NEXT: 1 1 0.13 mov x10, #-63432 +# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10 +# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb # CHECK-NEXT: 1 1 0.13 add w3, w5, w7 # CHECK-NEXT: 1 1 0.13 add wzr, w3, w5 # CHECK-NEXT: 1 1 0.13 add w20, wzr, w4 # CHECK-NEXT: 1 1 0.13 add w4, w6, wzr # CHECK-NEXT: 1 1 0.13 add w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.13 add w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18 @@ -1439,7 +58,7 @@ drps # CHECK-NEXT: 1 1 0.13 add x4, x6, xzr # CHECK-NEXT: 1 1 0.13 add x11, x13, x15 # CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.13 add x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63 @@ -1447,11 +66,13 @@ drps # CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63 # CHECK-NEXT: 1 1 0.25 adds w3, w5, w7 +# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25 +# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb # CHECK-NEXT: 1 1 0.25 cmn w3, w5 # CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4 # CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr # CHECK-NEXT: 1 1 0.25 adds w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18 @@ -1465,7 +86,7 @@ drps # CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr # CHECK-NEXT: 1 1 0.25 adds x11, x13, x15 # CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63 @@ -1476,7 +97,7 @@ drps # CHECK-NEXT: 1 1 0.13 sub wzr, w3, w5 # CHECK-NEXT: 1 1 0.13 sub w4, w6, wzr # CHECK-NEXT: 1 1 0.13 sub w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.13 sub w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18 @@ -1489,18 +110,21 @@ drps # CHECK-NEXT: 1 1 0.13 sub x4, x6, xzr # CHECK-NEXT: 1 1 0.13 sub x11, x13, x15 # CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.13 sub x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63 # CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0 # CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21 # CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63 +# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10 +# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb +# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1 # CHECK-NEXT: 1 1 0.25 subs w3, w5, w7 # CHECK-NEXT: 1 1 0.25 cmp w3, w5 # CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr # CHECK-NEXT: 1 1 0.25 subs w11, w13, w15 -# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1 # CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31 # CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18 @@ -1513,7 +137,7 @@ drps # CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr # CHECK-NEXT: 1 1 0.25 subs x11, x13, x15 # CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63 +# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3 # CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0 # CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18 # CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63 @@ -1523,7 +147,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn wzr, w4 # CHECK-NEXT: 1 1 0.25 cmn w5, wzr # CHECK-NEXT: 1 1 0.25 cmn w6, w7 -# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21 @@ -1536,7 +160,7 @@ drps # CHECK-NEXT: 1 1 0.25 cmn x5, xzr # CHECK-NEXT: 1 1 0.25 cmn x6, x7 # CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63 @@ -1547,19 +171,21 @@ drps # CHECK-NEXT: 1 1 0.25 cmp wzr, w4 # CHECK-NEXT: 1 1 0.25 cmp w5, wzr # CHECK-NEXT: 1 1 0.25 cmp w6, w7 -# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15 +# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1 # CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31 # CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21 # CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0 # CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22 # CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31 +# CHECK-NEXT: 1 2 0.50 cmp wsp, w26 +# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb # CHECK-NEXT: 1 1 0.25 cmp x0, x3 # CHECK-NEXT: 1 1 0.25 cmp xzr, x4 # CHECK-NEXT: 1 1 0.25 cmp x5, xzr # CHECK-NEXT: 1 1 0.25 cmp x6, x7 # CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15 -# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63 +# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3 # CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0 # CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41 # CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63 @@ -1568,6 +194,10 @@ drps # CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63 # CHECK-NEXT: 1 1 0.25 cmp wzr, w0 # CHECK-NEXT: 1 1 0.25 cmp xzr, x0 +# CHECK-NEXT: 1 1 0.13 mov sp, x30 +# CHECK-NEXT: 1 1 0.13 mov wsp, w20 +# CHECK-NEXT: 1 1 0.13 mov x11, sp +# CHECK-NEXT: 1 1 0.13 mov w24, wsp # CHECK-NEXT: 1 1 0.13 adc w29, w27, w25 # CHECK-NEXT: 1 1 0.13 adc wzr, w3, w4 # CHECK-NEXT: 1 1 0.13 adc w9, wzr, w10 @@ -1640,15 +270,11 @@ drps # CHECK-NEXT: 1 1 0.13 lsr w9, w10, #31 # CHECK-NEXT: 1 1 0.13 lsr x20, x21, #63 # CHECK-NEXT: 1 1 0.13 lsr wzr, wzr, #3 -# CHECK-NEXT: 1 1 0.13 lsr w3, w2, #0 # CHECK-NEXT: 1 1 0.13 lsl w9, w10, #31 # CHECK-NEXT: 1 1 0.13 lsl x20, x21, #63 # CHECK-NEXT: 1 1 0.13 lsl w1, wzr, #3 -# CHECK-NEXT: 1 1 0.13 sbfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.13 sbfiz x2, x3, #63, #1 -# CHECK-NEXT: 1 1 0.13 asr x19, x20, #0 # CHECK-NEXT: 1 1 0.13 sbfiz x9, x10, #5, #59 -# CHECK-NEXT: 1 1 0.13 asr w9, w10, #0 # CHECK-NEXT: 1 1 0.13 sbfiz w11, w12, #31, #1 # CHECK-NEXT: 1 1 0.13 sbfiz w13, w14, #29, #3 # CHECK-NEXT: 1 1 0.13 sbfiz xzr, xzr, #10, #11 @@ -1660,11 +286,8 @@ drps # CHECK-NEXT: 1 1 0.13 asr w11, w12, #31 # CHECK-NEXT: 1 1 0.13 asr w13, w14, #29 # CHECK-NEXT: 1 1 0.13 sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1 # CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1 -# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64 # CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59 -# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32 # CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11 @@ -1676,11 +299,8 @@ drps # CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1 # CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3 # CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: 1 1 0.13 ubfx w9, w10, #0, #1 # CHECK-NEXT: 1 1 0.13 lsl x2, x3, #63 -# CHECK-NEXT: 1 1 0.13 lsr x19, x20, #0 # CHECK-NEXT: 1 1 0.13 lsl x9, x10, #5 -# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #0 # CHECK-NEXT: 1 1 0.13 lsl w11, w12, #31 # CHECK-NEXT: 1 1 0.13 lsl w13, w14, #29 # CHECK-NEXT: 1 1 0.13 ubfiz xzr, xzr, #10, #11 @@ -1698,6 +318,7 @@ drps # CHECK-NEXT: 1 1 0.33 cbnz x26, #1048572 # CHECK-NEXT: 1 1 0.33 cbz wzr, #0 # CHECK-NEXT: 1 1 0.33 cbnz xzr, #0 +# CHECK-NEXT: 1 1 0.33 cbnz w21, test # CHECK-NEXT: 1 1 0.33 b.ne #4 # CHECK-NEXT: 1 1 0.33 b.ge #1048572 # CHECK-NEXT: 1 1 0.33 b.ge #-4 @@ -1786,7 +407,6 @@ drps # CHECK-NEXT: 1 1 0.13 cneg xzr, x4, le # CHECK-NEXT: 1 1 0.13 cneg x9, xzr, lt # CHECK-NEXT: 1 1 0.13 csneg x4, x8, x8, al -# CHECK-NEXT: 1 1 0.13 csinv w9, w8, w8, nv # CHECK-NEXT: 1 1 0.13 rbit w0, w7 # CHECK-NEXT: 1 1 0.13 rbit x18, x3 # CHECK-NEXT: 1 1 0.13 rev16 w17, w1 @@ -1818,6 +438,16 @@ drps # CHECK-NEXT: 1 1 0.13 asr x21, x22, x23 # CHECK-NEXT: 1 1 0.13 ror w24, w25, w26 # CHECK-NEXT: 1 1 0.13 ror x27, x28, x29 +# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15 +# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14 +# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11 +# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15 +# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21 +# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24 +# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25 +# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16 +# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23 +# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5 # CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26 # CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28 @@ -1860,7 +490,6 @@ drps # CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9 # CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18 # CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21 -# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28 # CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr # CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr # CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr @@ -1876,24 +505,26 @@ drps # CHECK-NEXT: 1 1 0.13 ror x19, x23, #24 # CHECK-NEXT: 1 1 0.13 ror x29, xzr, #63 # CHECK-NEXT: 1 1 0.13 ror w9, w13, #31 +# CHECK-NEXT: 1 2 1.00 fcmp h5, h21 +# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0 +# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21 +# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp s3, s5 # CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe s29, s30 # CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0 # CHECK-NEXT: 1 2 1.00 fcmp d4, d12 # CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0 # CHECK-NEXT: 1 2 1.00 fcmpe d26, d22 # CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 -# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0 # CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs # CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le # CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt # CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne +# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs +# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne # CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq # CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs # CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs @@ -1902,22 +533,33 @@ drps # CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne # CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: 1 2 0.50 fmov h18, h28 # CHECK-NEXT: 1 2 0.50 fmov s0, s1 # CHECK-NEXT: 1 2 0.50 fabs s2, s3 +# CHECK-NEXT: 1 2 0.50 fneg h2, h9 # CHECK-NEXT: 1 2 0.50 fneg s4, s5 # CHECK-NEXT: 1 8 1.00 fsqrt s6, s7 # CHECK-NEXT: 1 3 0.50 fcvt d8, s9 # CHECK-NEXT: 1 3 0.50 fcvt h10, s11 +# CHECK-NEXT: 1 3 1.00 frintn h12, h3 # CHECK-NEXT: 1 3 1.00 frintn s12, s13 +# CHECK-NEXT: 1 3 1.00 frintp h17, h31 # CHECK-NEXT: 1 3 1.00 frintp s14, s15 +# CHECK-NEXT: 1 3 1.00 frintm h0, h21 # CHECK-NEXT: 1 3 1.00 frintm s16, s17 +# CHECK-NEXT: 1 3 1.00 frintz h10, h29 # CHECK-NEXT: 1 3 1.00 frintz s18, s19 +# CHECK-NEXT: 1 3 1.00 frinta h22, h10 # CHECK-NEXT: 1 3 1.00 frinta s20, s21 +# CHECK-NEXT: 1 3 1.00 frintx h4, h5 # CHECK-NEXT: 1 3 1.00 frintx s22, s23 # CHECK-NEXT: 1 3 1.00 frinti s24, s25 +# CHECK-NEXT: 1 3 1.00 frinti h31, h14 # CHECK-NEXT: 1 2 0.50 fmov d0, d1 # CHECK-NEXT: 1 2 0.50 fabs d2, d3 # CHECK-NEXT: 1 2 0.50 fneg d4, d5 +# CHECK-NEXT: 1 6 1.00 fsqrt h13, h24 # CHECK-NEXT: 1 13 8.00 fsqrt d6, d7 # CHECK-NEXT: 1 3 0.50 fcvt s8, d9 # CHECK-NEXT: 1 3 0.50 fcvt h10, d11 @@ -1931,13 +573,19 @@ drps # CHECK-NEXT: 1 3 0.50 fcvt s26, h27 # CHECK-NEXT: 1 3 0.50 fcvt d28, h29 # CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17 +# CHECK-NEXT: 1 6 1.00 fdiv h1, h26, h23 # CHECK-NEXT: 1 8 1.00 fdiv s1, s2, s3 +# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22 # CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6 +# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18 # CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9 # CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12 +# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11 # CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15 +# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7 # CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2 # CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17 # CHECK-NEXT: 1 13 8.00 fdiv d1, d2, d3 @@ -1945,17 +593,23 @@ drps # CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9 # CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12 # CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15 +# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17 # CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17 # CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1 # CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13 # CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32 @@ -2100,12 +754,17 @@ drps # CHECK-NEXT: 1 3 1.00 fcvtas x27, d28 # CHECK-NEXT: 1 3 1.00 fcvtau w29, d30 # CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0 +# CHECK-NEXT: 1 3 1.00 fmov h6, w5 +# CHECK-NEXT: 1 3 1.00 fmov h16, x27 +# CHECK-NEXT: 2 2 1.00 fmov w15, h31 # CHECK-NEXT: 2 2 1.00 fmov w3, s9 # CHECK-NEXT: 1 3 1.00 fmov s9, w3 +# CHECK-NEXT: 2 2 1.00 fmov x21, h14 # CHECK-NEXT: 2 2 1.00 fmov x20, d31 # CHECK-NEXT: 1 3 1.00 fmov d1, x15 # CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1] # CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19 +# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000 # CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000 # CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000 # CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000 @@ -2129,13 +788,10 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4] # CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] -# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29] # CHECK-NEXT: 3 5 0.50 * * U stxp w12, w11, w10, [sp] # CHECK-NEXT: 3 5 0.50 * * U stxp wzr, x27, x9, [x12] # CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] -# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18] # CHECK-NEXT: 3 5 0.50 * * U stlxrb w12, w22, [x0] # CHECK-NEXT: 3 5 0.50 * * U stlxrh w10, w1, [x1] # CHECK-NEXT: 3 5 0.50 * * U stlxr w9, w2, [x2] @@ -2144,25 +800,19 @@ drps # CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5] # CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp] # CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] -# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6] # CHECK-NEXT: 3 5 0.50 * * U stlxp w4, w5, w6, [sp] # CHECK-NEXT: 3 5 0.50 * * U stlxp wzr, x6, x7, [x1] # CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp] # CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] -# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22] # CHECK-NEXT: 2 1 0.50 * U stlrb w24, [sp] # CHECK-NEXT: 2 1 0.50 * U stlrh w25, [x30] # CHECK-NEXT: 2 1 0.50 * U stlr w26, [x29] # CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] -# CHECK-NEXT: 2 1 0.50 * U stlr x27, [x28] +# CHECK-NEXT: 1 4 0.33 * U ldarb w16, [x21] # CHECK-NEXT: 1 4 0.33 * U ldarb w23, [sp] # CHECK-NEXT: 1 4 0.33 * U ldarh w22, [x30] # CHECK-NEXT: 1 4 0.33 * U ldar wzr, [x29] # CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] -# CHECK-NEXT: 1 4 0.33 * U ldar x21, [x28] # CHECK-NEXT: 2 1 0.50 * sturb w9, [sp] # CHECK-NEXT: 2 1 0.50 * sturh wzr, [x12, #255] # CHECK-NEXT: 2 1 0.50 * stur w16, [x0, #-256] @@ -2348,16 +998,23 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4] # CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380] +# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7] # CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4] # CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190] # CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2] # CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2] +# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121] # CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2] # CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095] # CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15] +# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27] # CHECK-NEXT: 2 1 0.50 * str x30, [sp] # CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380] +# CHECK-NEXT: 2 2 0.50 * str b5, [x11] +# CHECK-NEXT: 2 2 0.50 * str h23, [x15] +# CHECK-NEXT: 2 2 0.50 * str s25, [x19] +# CHECK-NEXT: 2 2 0.50 * str d15, [x2] # CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190] # CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095] # CHECK-NEXT: 2 1 0.50 * strb wzr, [x2] @@ -2366,23 +1023,13 @@ drps # CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380] # CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760] # CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520] -# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] -# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] -# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] -# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] -# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] -# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624] # CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5] # CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7] # CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw] @@ -2399,6 +1046,26 @@ drps # CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10] +# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25] +# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5] +# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6] +# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx] +# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx] +# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw] +# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw] +# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6] # CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5] # CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6] # CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2] @@ -2419,6 +1086,7 @@ drps # CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw] # CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw] # CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw] @@ -2450,6 +1118,8 @@ drps # CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44] # CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504] # CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512] +# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8] +# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16] # CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8] # CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008] @@ -2508,10 +1178,14 @@ drps # CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp] # CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008] # CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: 1 1 0.13 and wsp, w16, #0xe00 +# CHECK-NEXT: 1 1 0.13 and x2, x22, #0x1e00 +# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70 +# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60 +# CHECK-NEXT: 1 1 0.13 eor wsp, w4, #0xe00 +# CHECK-NEXT: 1 1 0.13 eor x27, x25, #0x1e00 # CHECK-NEXT: 1 1 0.13 mov w3, #983055 # CHECK-NEXT: 1 1 0.13 mov x10, #-6148914691236517206 -# CHECK-NEXT: 1 1 0.25 ands w4, w4, #0xf000f -# CHECK-NEXT: 1 1 0.25 ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: 1 1 0.13 and w12, w23, w21 # CHECK-NEXT: 1 1 0.13 and w16, w15, w1, lsl #1 # CHECK-NEXT: 1 1 0.13 and w9, w4, w10, lsl #31 @@ -2526,6 +1200,10 @@ drps # CHECK-NEXT: 1 1 0.13 and x7, x20, xzr, asr #63 # CHECK-NEXT: 1 1 0.13 bic x13, x20, x14, lsl #47 # CHECK-NEXT: 1 1 0.13 bic w2, w7, w9 +# CHECK-NEXT: 1 1 0.13 eon w29, w4, w19 +# CHECK-NEXT: 1 1 0.13 eon x19, x12, x2 +# CHECK-NEXT: 1 1 0.13 eor w8, w27, w2 +# CHECK-NEXT: 1 1 0.13 eor x22, x16, x6 # CHECK-NEXT: 1 1 0.13 orr w2, w7, w0, asr #31 # CHECK-NEXT: 1 1 0.13 orr x8, x9, x10, lsl #12 # CHECK-NEXT: 1 1 0.13 orn x3, x5, x7, asr #2 @@ -2551,16 +1229,20 @@ drps # CHECK-NEXT: 1 1 0.13 movk x7, #0, lsl #32 # CHECK-NEXT: 1 1 0.13 movz x8, #0, lsl #48 # CHECK-NEXT: 1 1 0.13 movk x9, #0, lsl #48 +# CHECK-NEXT: 1 1 0.10 U msr DAIFSet, #0 # CHECK-NEXT: 1 1 0.13 adr x2, #1600 # CHECK-NEXT: 1 1 0.13 adrp x21, #6553600 # CHECK-NEXT: 1 1 0.13 adr x0, #262144 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #0 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #4 # CHECK-NEXT: 1 1 0.33 tbz x12, #62, #-32768 +# CHECK-NEXT: 1 1 0.33 tbz w17, #16, test # CHECK-NEXT: 1 1 0.33 tbnz x12, #60, #32764 +# CHECK-NEXT: 1 1 0.33 tbnz w3, #28, test # CHECK-NEXT: 1 1 0.33 b #4 # CHECK-NEXT: 1 1 0.33 b #-4 # CHECK-NEXT: 1 1 0.33 b #134217724 +# CHECK-NEXT: 2 1 0.33 bl test # CHECK-NEXT: 1 1 0.33 br x20 # CHECK-NEXT: 2 1 0.33 blr xzr # CHECK-NEXT: 1 1 0.33 U ret x10 @@ -2595,7 +1277,7 @@ drps # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] -# CHECK-NEXT: 7.33 7.33 7.33 33.00 33.00 40.50 40.50 40.50 40.50 99.00 99.00 165.00 280.25 165.25 77.92 77.92 77.92 77.92 77.92 77.92 66.00 197.00 81.00 +# CHECK-NEXT: 8.67 8.67 8.67 34.00 34.00 40.75 40.75 40.75 40.75 99.33 99.33 170.33 290.50 163.50 79.83 79.83 79.83 79.83 79.83 79.83 71.00 219.50 96.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions: @@ -2618,22 +1300,22 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w2, #4095 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w20, wsp, #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x3, #1, lsl #12 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wsp, #2342 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp sp, #20, lsl #12 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x30, #4095 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x4, sp, #3822 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w3, #291, lsl #12 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn wsp, #1365 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn sp, #1092, lsl #12 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov sp, x30 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov wsp, w20 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x11, sp -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w24, wsp +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x10, #-63432 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add wsp, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x25, x9, w25, uxtb # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w3, w5, w7 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w20, wzr, w4 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w24, w25, w26, lsr #18 @@ -2647,7 +1329,7 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x27, x28, x29, lsr #63 @@ -2655,11 +1337,13 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x8, x9, x10, asr #63 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w3, w5, w7 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - adds w17, wsp, w25 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - adds x13, x23, w8, uxtb # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w3, w5 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w20, wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w4, w6, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w11, w13, w15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w24, w25, w26, lsr #18 @@ -2673,7 +1357,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x4, x6, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x11, x13, x15 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x27, x28, x29, lsr #63 @@ -2684,7 +1368,7 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub wzr, w3, w5 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w4, w6, wzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w11, w13, w15 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w24, w25, w26, lsr #18 @@ -2697,18 +1381,21 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x4, x6, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x11, x13, x15 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x27, x28, x29, lsr #63 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x2, x3, x4, asr #0 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x5, x6, x7, asr #21 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x8, x9, x10, asr #63 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w13, wsp, w10 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x16, x2, w19, uxtb +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - subs x13, x15, x14, sxtx #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w3, w5, w7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w3, w5 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w4, w6, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w11, w13, w15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w9, w3, wzr, lsl #10 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w9, w3, wzr, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w17, w29, w20, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w21, w22, w23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w24, w25, w26, lsr #18 @@ -2721,7 +1408,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x4, x6, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x11, x13, x15 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x9, x3, xzr, lsl #10 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x17, x29, x20, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x17, x29, x20, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x21, x22, x23, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x24, x25, x26, lsr #18 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x27, x28, x29, lsr #63 @@ -2731,7 +1418,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w5, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w6, w7 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w8, w9, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w10, w11, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w12, w13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w14, w15, lsr #21 @@ -2744,7 +1431,7 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x5, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x6, x7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x10, x11, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x12, x13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x14, x15, lsr #41 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x16, x17, lsr #63 @@ -2755,19 +1442,21 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wzr, w4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w5, wzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w6, w7 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w8, w9, lsl #15 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w8, w9, lsl #1 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w10, w11, lsl #31 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w12, w13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w14, w15, lsr #21 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w18, w19, asr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w20, w21, asr #22 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w22, w23, asr #31 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - cmp wsp, w26 +# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - cmp x16, w27, uxtb # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x0, x3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp xzr, x4 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x5, xzr # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x6, x7 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x8, x9, lsl #15 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x10, x11, lsl #63 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x10, x11, lsl #3 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x12, x13, lsr #0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x14, x15, lsr #41 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x16, x17, lsr #63 @@ -2776,6 +1465,10 @@ drps # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x22, x23, asr #63 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wzr, w0 # CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp xzr, x0 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov sp, x30 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov wsp, w20 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x11, sp +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w24, wsp # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc w29, w27, w25 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc wzr, w3, w4 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc w9, wzr, w10 @@ -2848,15 +1541,11 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr wzr, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w3, w2, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w9, w10, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x20, x21, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w1, wzr, #3 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz xzr, xzr, #10, #11 @@ -2868,11 +1557,8 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfx xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi x2, x3, #63, #1 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil x19, x20, #0, #64 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi x9, x10, #5, #59 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w9, w10, #0, #32 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfc xzr, #10, #11 @@ -2884,11 +1570,8 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w11, w12, #31, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w13, w14, #29, #3 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil xzr, xzr, #10, #11 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ubfx w9, w10, #0, #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x2, x3, #63 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr x19, x20, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x9, x10, #5 -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w9, w10, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w11, w12, #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w13, w14, #29 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ubfiz xzr, xzr, #10, #11 @@ -2906,6 +1589,7 @@ drps # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz x26, #1048572 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbz wzr, #0 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz xzr, #0 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz w21, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ne #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ge #1048572 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ge #-4 @@ -2994,7 +1678,6 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cneg xzr, x4, le # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cneg x9, xzr, lt # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - csneg x4, x8, x8, al -# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - csinv w9, w8, w8, nv # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rbit w0, w7 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rbit x18, x3 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rev16 w17, w1 @@ -3026,6 +1709,16 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr x21, x22, x23 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror w24, w25, w26 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x27, x28, x29 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb w30, w23, w15 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb wzr, w12, w14 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb w28, w10, w11 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32b w27, w12, w15 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32h w3, w15, w21 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32w w9, w18, w24 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32x w19, w6, x25 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32ch w25, w26, w16 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cw w27, w12, w23 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cx w21, w28, x5 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh xzr, x27, x26 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umulh x30, x29, x28 @@ -3068,7 +1761,6 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umsubl x3, w5, w2, x9 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umsubl x16, w17, wzr, x18 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umnegl x19, w20, w21 -# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x30, x29, x28 # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umulh x23, x22, xzr # CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - mul x19, x20, xzr @@ -3084,24 +1776,26 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x19, x23, #24 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x29, xzr, #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror w9, w13, #31 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp h5, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp h5, #0.0 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe h22, h21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe h13, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s3, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s31, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s31, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s29, s30 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s15, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s15, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d4, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d23, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d23, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d26, d22 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d29, #0.0 -# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d29, #0.0 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s31, s15, #13, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d9, d31, #0, le # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d3, d0, #15, gt # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d31, d5, #7, ne +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp h31, h3, #11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs @@ -3110,22 +1804,33 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov h18, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s0, s1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fabs s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg h2, h9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg s4, s5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fsqrt s6, s7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt d8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt h10, s11 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintn h12, h3 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintn s12, s13 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintp h17, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintp s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintm h0, h21 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintm s16, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintz h10, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintz s18, s19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinta h22, h10 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinta s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintx h4, h5 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintx s22, s23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinti s24, s25 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinti h31, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov d0, d1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fabs d2, d3 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg d4, d5 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fsqrt h13, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 8.00 fsqrt d6, d7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt s8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt h10, d11 @@ -3139,13 +1844,19 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt s26, h27 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt d28, h29 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fdiv h1, h26, h23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fdiv s1, s2, s3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 8.00 fdiv d1, d2, d3 @@ -3153,17 +1864,23 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32 @@ -3308,12 +2025,17 @@ drps # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtas x27, d28 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtau w29, d30 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtau xzr, d0 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov h6, w5 +# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov h16, x27 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov w15, h31 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov w3, s9 # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov s9, w3 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x21, h14 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x20, d31 # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov d1, x15 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x3, v12.d[1] # CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - 0.50 0.50 fmov v1.d[1], x19 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000 # CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000 @@ -3337,13 +2059,10 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxrh w17, [x4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr w22, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stxp w12, w11, w10, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stxp wzr, x27, x9, [x12] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp w0, wzr, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp x17, x0, [x18] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp x17, x0, [x18] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxrb w12, w22, [x0] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxrh w10, w1, [x1] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxr w9, w2, [x2] @@ -3352,25 +2071,19 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxrh w7, [x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr w6, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxp w4, w5, w6, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxp wzr, x6, x7, [x1] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp w5, w18, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp x6, x19, [x22] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp x6, x19, [x22] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlrb w24, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlrh w25, [x30] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr w26, [x29] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28] -# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarb w16, [x21] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarb w23, [sp] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarh w22, [x30] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar wzr, [x29] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - sturb w9, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - sturh wzr, [x12, #255] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stur w16, [x0, #-256] @@ -3556,16 +2269,23 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w13, [x2, #4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x2, [x5, #4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x23, [sp, #16380] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x21, [x25, x7] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w2, [x4] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh w23, [x6, #8190] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh wzr, [sp, #2] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh x29, [x2, #2] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh x25, [x8, w13, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w26, [x3, #121] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w12, [x2] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w27, [sp, #4095] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb xzr, [x15] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb x12, [x28, x27] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str x30, [sp] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str w20, [x4, #16380] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b5, [x11] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h23, [x15] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str s25, [x19] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str d15, [x2] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strh w17, [sp, #8190] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w23, [x3, #4095] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb wzr, [x2] @@ -3574,23 +2294,13 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s10, [x19, #16380] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr d3, [x10, #32760] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str q12, [sp, #65520] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h3, [sp, x5] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h9, [x27, x6] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h10, [x30, x7, lsl #1] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h11, [x29, x3, sxtx] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h12, [x28, xzr, sxtx] -# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 str h13, [x27, x5, sxtx #1] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h14, [x26, w6, uxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h15, [x25, w7, uxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h16, [x24, w8, uxtw #1] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h17, [x23, w9, sxtw] -# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h18, [x22, w10, sxtw] -# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr q14, [x6, #4624] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w3, [sp, x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w9, [x27, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w10, [x30, x7] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w11, [x29, x3, sxtx] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w5, [x26, w7, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w14, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w15, [x25, w7, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w17, [x23, w9, sxtw] @@ -3607,6 +2317,26 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w18, [x22, w10, sxtw] # CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strh w19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr b25, [x21, w8, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr b8, [x30, x10] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b14, [x13, x25] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b30, [x16, w26, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h3, [sp, x5] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h9, [x27, x6] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h10, [x30, x7, lsl #1] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h11, [x29, x3, sxtx] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h12, [x28, xzr, sxtx] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 str h13, [x27, x5, sxtx #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h14, [x26, w6, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h15, [x25, w7, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h16, [x24, w8, uxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h17, [x23, w9, sxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h18, [x22, w10, sxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h19, [x21, wzr, sxtw #1] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s12, [x30, w5, uxtw] +# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr d24, [x26, w7, uxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str s20, [x24, w10, uxtw] +# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str d5, [x26, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w3, [sp, x5] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s9, [x27, x6] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w10, [x30, x7, lsl #2] @@ -3627,6 +2357,7 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x13, [x27, x5, sxtx #3] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x15, [x25, w7, uxtw] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str x27, [x26, w24, uxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x16, [x24, w8, uxtw #3] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x17, [x23, w9, sxtw] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x18, [x22, w10, sxtw] @@ -3658,6 +2389,8 @@ drps # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldp s1, s2, [x3, #44] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 stp d3, d5, [x9, #504] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 stp d7, d11, [x10, #-512] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stnp x20, x16, [x8] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stp x3, x6, [x16] # CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldp d2, d3, [x30, #-8] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stp q17, q19, [sp, #1008] @@ -3716,10 +2449,14 @@ drps # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stnp q3, q5, [sp] # CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stnp q17, q19, [sp, #1008] # CHECK-NEXT: - - - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - - ldnp q23, q29, [x1, #-1024] +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and wsp, w16, #0xe00 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and x2, x22, #0x1e00 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands w14, w8, #0x70 +# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands x4, x10, #0x60 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor wsp, w4, #0xe00 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor x27, x25, #0x1e00 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w3, #983055 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x10, #-6148914691236517206 -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands w4, w4, #0xf000f -# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w12, w23, w21 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w16, w15, w1, lsl #1 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w9, w4, w10, lsl #31 @@ -3734,6 +2471,10 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and x7, x20, xzr, asr #63 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - bic x13, x20, x14, lsl #47 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - bic w2, w7, w9 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eon w29, w4, w19 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eon x19, x12, x2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor w8, w27, w2 +# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor x22, x16, x6 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orr w2, w7, w0, asr #31 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orr x8, x9, x10, lsl #12 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orn x3, x5, x7, asr #2 @@ -3759,16 +2500,20 @@ drps # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movk x7, #0, lsl #32 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movz x8, #0, lsl #48 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movk x9, #0, lsl #48 +# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adr x2, #1600 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adrp x21, #6553600 # CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adr x0, #262144 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #0 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz w17, #16, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbnz w3, #28, test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #-4 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #134217724 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - bl test # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - br x20 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - blr xzr # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - ret x10 diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s new file mode 100644 index 0000000000000..f801a18bc7a06 --- /dev/null +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s @@ -0,0 +1,70 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s + +# 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: 2 1 0.50 * ldapur w7, [x24] +# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] +# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] +# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] +# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] +# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] +# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] +# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29] + +# CHECK: Resources: +# CHECK-NEXT: [0.0] - V3AEUnitB +# CHECK-NEXT: [0.1] - V3AEUnitB +# CHECK-NEXT: [0.2] - V3AEUnitB +# CHECK-NEXT: [1.0] - V3AEUnitD +# CHECK-NEXT: [1.1] - V3AEUnitD +# CHECK-NEXT: [2.0] - V3AEUnitFlg +# CHECK-NEXT: [2.1] - V3AEUnitFlg +# CHECK-NEXT: [2.2] - V3AEUnitFlg +# CHECK-NEXT: [2.3] - V3AEUnitFlg +# CHECK-NEXT: [3.0] - V3AEUnitL12 +# CHECK-NEXT: [3.1] - V3AEUnitL12 +# CHECK-NEXT: [4] - V3AEUnitLS0 +# CHECK-NEXT: [5] - V3AEUnitM0 +# CHECK-NEXT: [6] - V3AEUnitM1 +# CHECK-NEXT: [7] - V3AEUnitS0 +# CHECK-NEXT: [8] - V3AEUnitS1 +# CHECK-NEXT: [9] - V3AEUnitS2 +# CHECK-NEXT: [10] - V3AEUnitS3 +# CHECK-NEXT: [11] - V3AEUnitS4 +# CHECK-NEXT: [12] - V3AEUnitS5 +# CHECK-NEXT: [13] - V3AEUnitST1 +# CHECK-NEXT: [14] - V3AEUnitV0 +# CHECK-NEXT: [15] - V3AEUnitV1 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] +# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions: +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur w7, [x24] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur x20, [x13] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurb w13, [x17] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurh w3, [x22] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb w7, [x8] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb x29, [x7] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh w17, [x19] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh x3, [x3] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursw x3, [x18] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur w3, [x27] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur x23, [x25] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurb w30, [x17] +# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurh w9, [x29]