diff --git a/llvm/include/llvm/IR/IntrinsicsAArch64.td b/llvm/include/llvm/IR/IntrinsicsAArch64.td --- a/llvm/include/llvm/IR/IntrinsicsAArch64.td +++ b/llvm/include/llvm/IR/IntrinsicsAArch64.td @@ -1355,7 +1355,8 @@ class SVE2_CONFLICT_DETECT_Intrinsic : DefaultAttrsIntrinsic<[llvm_anyvector_ty], [LLVMAnyPointerType, - LLVMMatchType<1>]>; + LLVMMatchType<1>], + [IntrNoMem]>; class SVE2_3VectorArg_Indexed_Intrinsic : DefaultAttrsIntrinsic<[llvm_anyvector_ty], diff --git a/llvm/lib/Target/AArch64/SVEInstrFormats.td b/llvm/lib/Target/AArch64/SVEInstrFormats.td --- a/llvm/lib/Target/AArch64/SVEInstrFormats.td +++ b/llvm/lib/Target/AArch64/SVEInstrFormats.td @@ -328,6 +328,7 @@ let Defs = !if(!eq (opc{0}, 1), [NZCV], []); let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -653,6 +654,7 @@ let Inst{8-4} = 0b00000; let Inst{3-0} = Pd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -686,6 +688,7 @@ let Inst{4-0} = 0b00000; let Defs = [NZCV]; + let hasSideEffects = 0; let isCompare = 1; } @@ -720,8 +723,9 @@ let Constraints = "$Pdn = $_Pdn"; let Defs = [NZCV]; - let isPTestLike = 1; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; + let isPTestLike = 1; } multiclass sve_int_pfirst opc, string asm, SDPatternOperator op> { @@ -768,6 +772,7 @@ !strconcat(asm, "\t$Rdn, $Pg, $_Rdn"), !strconcat(asm, "\t$Rdn, $Pg")); let Constraints = "$Rdn = $_Rdn"; + let hasSideEffects = 0; } multiclass sve_int_count_r_s32 opc, string asm, @@ -873,6 +878,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_count_v opc, string asm, @@ -911,6 +917,8 @@ let Inst{9} = opc{0}; let Inst{8-5} = Pn; let Inst{4-0} = Rd; + + let hasSideEffects = 0; } multiclass sve_int_pcount_pred opc, string asm, @@ -947,6 +955,7 @@ let Inst{9-5} = pattern; let Inst{4-0} = Rd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -989,6 +998,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_countvlv opc, string asm, ZPRRegOp zprty, @@ -1023,6 +1033,7 @@ let Inst{4-0} = Rdn; let Constraints = "$Rdn = $_Rdn"; + let hasSideEffects = 0; } multiclass sve_int_pred_pattern_a opc, string asm, @@ -1089,6 +1100,7 @@ !strconcat(asm, "\t$Rdn, $pattern, mul $imm4")); let Constraints = "$Rdn = $_Rdn"; + let hasSideEffects = 0; } multiclass sve_int_pred_pattern_b_s32 opc, string asm, @@ -1154,6 +1166,8 @@ let Inst{21-10} = 0b100000001110; let Inst{9-5} = Rn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_dup_r { @@ -1188,6 +1202,8 @@ let Inst{15-10} = 0b001000; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_dup_i { @@ -1292,6 +1308,8 @@ let Inst{10} = 0b0; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_tbl { @@ -1387,6 +1405,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2_int_perm_tbx opc, SDPatternOperator op> { @@ -1419,6 +1438,8 @@ let Inst{21-10} = 0b111000001110; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_reverse_z { @@ -1457,6 +1478,8 @@ let Inst{8-5} = Pn; let Inst{4} = 0b0; let Inst{3-0} = Pd; + + let hasSideEffects = 0; } multiclass sve_int_perm_reverse_p { @@ -1485,6 +1508,8 @@ let Inst{15-10} = 0b001110; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_unpk opc, string asm, SDPatternOperator op> { @@ -1513,6 +1538,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } multiclass sve_int_perm_insrs { @@ -1543,6 +1569,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } multiclass sve_int_perm_insrv { @@ -1594,6 +1621,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_perm_extract_i { @@ -1616,6 +1644,8 @@ let Inst{12-10} = imm8{2-0}; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } //===----------------------------------------------------------------------===// @@ -1639,6 +1669,8 @@ let Inst{13-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_sel_vvv { @@ -1702,7 +1734,7 @@ !strconcat(asm, "\t$Pd, $Pg/z, $Pn, $Pm")); let Defs = !if(!eq (opc{2}, 1), [NZCV], []); - + let hasSideEffects = 0; } multiclass sve_int_pred_log opc, string asm, SDPatternOperator op, @@ -1765,6 +1797,7 @@ let DecoderMethod = "DecodeSVELogicalImmInstruction"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_log_imm opc, string asm, string alias, SDPatternOperator op> { @@ -1810,8 +1843,9 @@ let Inst{17-5} = imms; let Inst{4-0} = Zd; - let isReMaterializable = 1; let DecoderMethod = "DecodeSVELogicalImmInstruction"; + let hasSideEffects = 0; + let isReMaterializable = 1; } multiclass sve_int_dup_mask_imm { @@ -1861,6 +1895,8 @@ let Inst{12-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_arit_0 opc, string asm, SDPatternOperator op> { @@ -1902,6 +1938,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_i_p_zds opc, string asm, string Ps, Operand imm_ty, FPImmLeaf A, FPImmLeaf B, SDPatternOperator op> { @@ -1940,6 +1978,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_p_zds opc, string asm, string Ps, @@ -1999,6 +2039,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_ftmad { @@ -2068,6 +2110,9 @@ let Inst{12-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_3op_u_zd opc, string asm, SDPatternOperator op, @@ -2121,6 +2166,8 @@ let Constraints = "$Zda = $_Zda"; let ElementSize = zprty.ElementSize; let DestructiveInstType = DestructiveTernaryCommWithRev; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_3op_p_zds_a opc, string asm, string Ps, @@ -2161,6 +2208,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_3op_p_zds_b opc, string asm, SDPatternOperator op, @@ -2205,6 +2254,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2p1_fp_bfma_by_indexed_elem opc> { @@ -2267,6 +2318,9 @@ let Inst{10} = 0b0; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2p1_fp_bfmul_by_indexed_elem { @@ -2335,6 +2389,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_fcmla { @@ -2375,6 +2431,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_fcmla_by_indexed_elem { @@ -2423,6 +2481,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_fcadd { @@ -2461,6 +2521,8 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2_fp_convert_down_narrow { @@ -2510,6 +2572,8 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2_fp_pairwise_pred opc, string asm, @@ -2553,6 +2617,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2_fp_mla_long_by_indexed_elem opc, string asm, @@ -2588,6 +2654,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2_fp_mla_long opc, string asm, ValueType OutVT, @@ -2616,6 +2684,8 @@ let Inst{11} = streaming_sve; let Inst{10-5} = imm6; let Inst{4-0} = Rd; + + let hasSideEffects = 0; } class sve_int_read_vl_a opc2, string asm, bit streaming_sve = 0b0> @@ -2634,6 +2704,7 @@ let Inst{10-5} = imm6; let Inst{4-0} = Rd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -2658,6 +2729,8 @@ let Inst{12-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_bin_perm_zz opc, string asm, @@ -2707,6 +2780,8 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveUnaryPassthru; let ElementSize = Sz; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_p_zd opc, string asm, @@ -2821,6 +2896,9 @@ let Inst{15-10} = 0b001100; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_u_zd opc, string asm, SDPatternOperator op> { @@ -2857,6 +2935,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_bin_pred_log opc, string asm, string Ps, @@ -2983,6 +3062,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_mladdsub_vvv_pred opc, string asm, SDPatternOperator op> { @@ -3020,6 +3100,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_mlas_vvv_pred opc, string asm, SDPatternOperator op> { @@ -3057,6 +3138,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_mla { @@ -3102,6 +3184,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_mla_by_indexed_elem opc, bit S, string asm, @@ -3180,6 +3263,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } multiclass sve_intx_dot { @@ -3212,6 +3296,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } multiclass sve_intx_dot_by_indexed_elem { @@ -3312,6 +3398,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_cintx_dot_by_indexed_elem { @@ -3382,6 +3469,8 @@ let Inst{12-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_mul opc, string asm, SDPatternOperator op, @@ -3426,6 +3515,8 @@ let Inst{13-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_mul_by_indexed_elem opc, string asm, @@ -3502,6 +3593,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve2_int_arith_pred opc, string asm, SDPatternOperator op, @@ -3544,6 +3636,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty1.ElementSize; + let hasSideEffects = 0; } multiclass sve2_int_sadd_long_accum_pairwise { @@ -3579,6 +3672,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveUnaryPassthru; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve2_int_un_pred_arit_s opc, string asm, @@ -3638,6 +3732,8 @@ let Inst{14-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_wide_int_arith_long opc, string asm, @@ -3702,6 +3798,8 @@ let Inst{13-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_misc_bitwise opc, string asm, SDPatternOperator op> { @@ -3746,6 +3844,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_bitwise_xor_interleaved opc, string asm, @@ -3821,6 +3922,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2_int_bin_shift_imm_left opc, string asm, @@ -3930,6 +4033,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_cadd { @@ -3963,6 +4067,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_absdiff_accum { @@ -4022,6 +4127,8 @@ let Inst{10} = 0b0; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_bin_shift_imm_right_narrow_bottom opc, string asm, @@ -4062,6 +4169,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2_int_bin_shift_imm_right_narrow_top opc, string asm, @@ -4097,6 +4205,8 @@ let Inst{10} = 0b0; // Top let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_addsub_narrow_high_bottom opc, string asm, @@ -4128,6 +4238,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2_int_addsub_narrow_high_top opc, string asm, @@ -4156,6 +4267,8 @@ let Inst{10} = 0b0; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_sat_extract_narrow_bottom opc, string asm, @@ -4186,6 +4299,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2_int_sat_extract_narrow_top opc, string asm, @@ -4225,6 +4339,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveUnaryPassthru; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_un_pred_arit_0 opc, string asm, @@ -4377,6 +4492,7 @@ let Inst{12-5} = imm{7-0}; // imm8 let Inst{4-0} = Zd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -4418,6 +4534,7 @@ let Inst{12-5} = imm8; let Inst{4-0} = Zd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -4454,6 +4571,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_arith_imm0 opc, string asm, SDPatternOperator op> { @@ -4486,6 +4604,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_arith_imm1 opc, string asm, SDPatternOperator op> { @@ -4543,6 +4662,8 @@ let Inst{15-10} = 0b001100; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_log opc, string asm, SDPatternOperator op> { @@ -4581,6 +4702,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_bitwise_ternary_op opc, string asm, SDPatternOperator op, @@ -4627,6 +4749,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve2_int_rotate_right_imm { @@ -4672,6 +4795,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_dup_fpimm_pred { @@ -4707,6 +4831,7 @@ let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_dup_imm_pred_merge_inst< @@ -4812,6 +4937,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isPTestLike = 1; } @@ -4901,6 +5027,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isPTestLike = 1; } @@ -4974,6 +5101,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isPTestLike = 1; } @@ -5016,6 +5144,7 @@ let Inst{3-0} = 0b0000; let Defs = [NZCV]; + let hasSideEffects = 0; } class sve_int_while_rr sz8_64, bits<4> opc, string asm, @@ -5038,6 +5167,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isWhile = 1; } @@ -5084,6 +5214,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isWhile = 1; } @@ -5120,6 +5251,9 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Vd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_fast_red opc, string asm, SDPatternOperator op> { @@ -5159,6 +5293,8 @@ let Inst{4-0} = Vdn; let Constraints = "$Vdn = $_Vdn"; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_p_vd opc, string asm, SDPatternOperator op> { @@ -5199,6 +5335,9 @@ let Inst{9-5} = Zn; let Inst{4} = opc{0}; let Inst{3-0} = Pd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_3op_p_pd opc, string asm, SDPatternOperator op> { @@ -5255,6 +5394,9 @@ let Inst{9-5} = Zn; let Inst{4} = opc{0}; let Inst{3-0} = Pd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_2op_p_pd opc, string asm, @@ -5308,6 +5450,7 @@ let Inst{9-5} = imm5; let Inst{4-0} = Zd; + let hasSideEffects = 0; let isReMaterializable = 1; } @@ -5352,6 +5495,8 @@ let Inst{15-10} = 0b010010; let Inst{9-5} = imm5; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_index_ir { @@ -5419,6 +5564,8 @@ let Inst{15-10} = 0b010001; let Inst{9-5} = Rn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_index_ri { @@ -5453,6 +5600,8 @@ let Inst{15-10} = 0b010011; let Inst{9-5} = Rn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_index_rr { @@ -5510,6 +5659,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveBinaryImm; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_bin_pred_shift_imm_left opc, string asm, string Ps, @@ -5626,6 +5776,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_bin_pred_shift opc, string asm, string Ps, @@ -5690,6 +5841,8 @@ let Inst{11-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_shift_wide opc, string asm, SDPatternOperator op> { @@ -5720,6 +5873,8 @@ let Inst{11-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_shift_imm_left opc, string asm, @@ -5786,6 +5941,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5822,6 +5978,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5853,6 +6010,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5884,6 +6042,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5907,6 +6066,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5929,6 +6089,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5959,6 +6120,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -5993,6 +6155,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6023,6 +6186,7 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6079,6 +6243,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6182,6 +6347,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6230,6 +6396,7 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6282,6 +6449,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6308,6 +6476,7 @@ let Inst{4} = 0b0; let Inst{3-0} = Pt; + let hasSideEffects = 0; let mayStore = 1; } @@ -6340,6 +6509,8 @@ let Inst{8-5} = Pn; let Inst{4} = 0b0; let Inst{3-0} = Pd; + + let hasSideEffects = 0; } multiclass sve_int_perm_bin_perm_pp opc, string asm, @@ -6368,6 +6539,8 @@ let Inst{8-5} = Pn; let Inst{4} = 0b0; let Inst{3-0} = Pd; + + let hasSideEffects = 0; } multiclass sve_int_perm_punpk { @@ -6394,6 +6567,7 @@ let Defs = !if(s, [NZCV], []); let Uses = [FFR]; + let hasSideEffects = 1; } multiclass sve_int_rdffr_pred { @@ -6417,6 +6591,7 @@ let Inst{3-0} = Pd; let Uses = [FFR]; + let hasSideEffects = 1; } multiclass sve_int_rdffr_unpred { @@ -6440,8 +6615,8 @@ let Inst{8-5} = Pn; let Inst{4-0} = 0b00000; - let hasSideEffects = 1; let Defs = [FFR]; + let hasSideEffects = 1; } class sve_int_setffr @@ -6451,8 +6626,8 @@ [(op)]>, Sched<[]> { let Inst{31-0} = 0b00100101001011001001000000000000; - let hasSideEffects = 1; let Defs = [FFR]; + let hasSideEffects = 1; } //===----------------------------------------------------------------------===// @@ -6478,6 +6653,7 @@ let Inst{4-0} = Rdn; let Constraints = "$Rdn = $_Rdn"; + let hasSideEffects = 0; } multiclass sve_int_perm_clast_rz { @@ -6511,6 +6687,7 @@ let Inst{4-0} = Vdn; let Constraints = "$Vdn = $_Vdn"; + let hasSideEffects = 0; } multiclass sve_int_perm_clast_vz { @@ -6547,6 +6724,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_perm_clast_zz { @@ -6584,6 +6762,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Rd; + + let hasSideEffects = 0; } multiclass sve_int_perm_last_r { @@ -6615,6 +6795,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Vd; + + let hasSideEffects = 0; } multiclass sve_int_perm_last_v { @@ -6649,6 +6831,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeNone; + let hasSideEffects = 0; } multiclass sve_int_perm_splice { @@ -6684,6 +6867,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_int_perm_splice_cons { @@ -6714,6 +6899,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_perm_rev_rbit { @@ -6771,6 +6957,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_perm_cpy_r { @@ -6817,6 +7004,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_perm_cpy_v { @@ -6861,6 +7049,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_compact { @@ -6896,9 +7086,10 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; - let mayLoad = 1; - let Uses = !if(nf, [FFR], []); let Defs = !if(nf, [FFR], []); + let Uses = !if(nf, [FFR], []); + let hasSideEffects = nf; + let mayLoad = 1; } multiclass sve_mem_cld_si_base dtype, bit nf, string asm, @@ -6942,6 +7133,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -6976,6 +7168,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7003,6 +7196,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7034,6 +7228,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7065,6 +7260,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7099,9 +7295,10 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; - let mayLoad = 1; - let Uses = !if(ff, [FFR], []); let Defs = !if(ff, [FFR], []); + let Uses = !if(ff, [FFR], []); + let hasSideEffects = ff; + let mayLoad = 1; } multiclass sve_mem_cld_ss dtype, string asm, RegisterOperand listty, @@ -7159,6 +7356,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7192,6 +7390,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7222,9 +7421,11 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; - let mayLoad = 1; + let Defs = !if(!eq(opc{0}, 1), [FFR], []); let Uses = !if(!eq(opc{0}, 1), [FFR], []); + let hasSideEffects = opc{0}; + let mayLoad = 1; } multiclass sve_mem_32b_gld_sv_32_scaled opc, string asm, @@ -7305,9 +7506,11 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; - let mayLoad = 1; + let Defs = !if(!eq(opc{0}, 1), [FFR], []); let Uses = !if(!eq(opc{0}, 1), [FFR], []); + let hasSideEffects = opc{0}; + let mayLoad = 1; } multiclass sve_mem_32b_gld_vi_32_ptrs opc, string asm, Operand imm_ty, @@ -7441,6 +7644,8 @@ let Inst{9-5} = Zn; let Inst{4} = 0b0; let Inst{3-0} = prfop; + + let hasSideEffects = 1; } multiclass sve_mem_32b_prfm_vi msz, string asm, Operand imm_ty, SDPatternOperator op> { @@ -7468,6 +7673,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7494,6 +7700,7 @@ let Inst{4} = 0b0; let Inst{3-0} = Pt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7526,6 +7733,7 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -7591,9 +7799,11 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; - let mayLoad = 1; + let Defs = !if(!eq(opc{0}, 1), [FFR], []); let Uses = !if(!eq(opc{0}, 1), [FFR], []); + let hasSideEffects = opc{0}; + let mayLoad = 1; } multiclass sve_mem_64b_gld_sv_32_scaled opc, string asm, @@ -7710,9 +7920,10 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; - let mayLoad = 1; let Defs = !if(!eq(opc{0}, 1), [FFR], []); let Uses = !if(!eq(opc{0}, 1), [FFR], []); + let hasSideEffects = opc{0}; + let mayLoad = 1; } multiclass sve_mem_64b_gld_vi_64_ptrs opc, string asm, Operand imm_ty, @@ -7840,6 +8051,8 @@ let Inst{11-10} = msz; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_misc_0_a_uxtw opc, string asm> { @@ -7889,6 +8102,8 @@ let Inst{15-10} = 0b101100; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_bin_cons_misc_0_b { @@ -7952,6 +8167,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Vd; + + let hasSideEffects = 0; } multiclass sve_int_reduce_0_saddv opc, string asm, @@ -8023,6 +8240,7 @@ let Inst{4-0} = Zd; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_movprfx_pred_merge opc, string asm> { @@ -8075,6 +8293,7 @@ let Inst{3-0} = Pd; let Defs = !if(!eq (opc{1}, 1), [NZCV], []); + let hasSideEffects = 0; } multiclass sve_int_brkp opc, string asm, SDPatternOperator op> { @@ -8108,6 +8327,7 @@ let Constraints = "$Pdm = $_Pdm"; let Defs = !if(S, [NZCV], []); let ElementSize = ElementSizeB; + let hasSideEffects = 0; } multiclass sve_int_brkn opc, string asm, SDPatternOperator op> { @@ -8135,7 +8355,7 @@ let Constraints = !if(!eq (opc{0}, 1), "$Pd = $_Pd", ""); let Defs = !if(!eq (opc{1}, 1), [NZCV], []); - + let hasSideEffects = 0; } multiclass sve_int_break_m opc, string asm, SDPatternOperator op> { @@ -8176,6 +8396,7 @@ let Defs = [NZCV]; let ElementSize = pprty.ElementSize; + let hasSideEffects = 0; let isPTestLike = 1; } @@ -8204,6 +8425,8 @@ let Inst{15-10} = 0b101000; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } //===----------------------------------------------------------------------===// @@ -8227,6 +8450,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_hist_gen_vector { @@ -8255,6 +8480,8 @@ let Inst{10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2_crypto_cons_bin_op opc, string asm, ZPRRegOp zprty, @@ -8298,6 +8526,7 @@ let Inst{4-0} = Zdn; let Constraints = "$Zdn = $_Zdn"; + let hasSideEffects = 0; } multiclass sve2_crypto_unary_op { @@ -8325,6 +8554,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_float_dot { @@ -8350,6 +8581,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_float_dot_indexed { @@ -8372,6 +8605,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ElementSizeH; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_bfloat_matmul { @@ -8394,8 +8629,9 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; - let hasSideEffects = 1; let ElementSize = ElementSizeS; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_bfloat_convert { @@ -8424,6 +8660,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ZPR32.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_matmul uns, string asm, SDPatternOperator op> { @@ -8451,6 +8688,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ZPR32.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_dot_mixed { @@ -8481,6 +8719,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = ZPR32.ElementSize; + let hasSideEffects = 0; } multiclass sve_int_dot_mixed_indexed { @@ -8510,6 +8749,8 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; let ElementSize = zprty.ElementSize; + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve_fp_matrix_mla { @@ -8538,6 +8779,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -8578,6 +8820,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -8612,6 +8855,8 @@ let Inst{10} = P; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve_int_perm_bin_perm_128_zz opc, bit P, string asm, SDPatternOperator op> { @@ -8723,6 +8968,7 @@ let Constraints = "$Zd = $_Zd"; let DestructiveInstType = DestructiveOther; let ElementSize = zpr_ty.ElementSize; + let hasSideEffects = 0; } multiclass sve2p1_fclamp { @@ -8748,6 +8994,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } @@ -8770,6 +9017,7 @@ let Constraints = "$Zda = $_Zda"; let DestructiveInstType = DestructiveOther; + let hasSideEffects = 0; } @@ -8781,6 +9029,8 @@ let Inst{23-22} = sz; let Inst{21-3} = 0b1000000111100000010; let Inst{2-0} = PNd; + + let hasSideEffects = 0; } @@ -8808,6 +9058,8 @@ let Inst{7-5} = PNn; let Inst{4} = 0b1; let Inst{3-0} = Pd; + + let hasSideEffects = 0; } class sve2p1_pred_as_ctr_to_mask sz, PPRRegOp pprty> @@ -8855,6 +9107,8 @@ let Inst{9-6} = Zn; let Inst{5} = 0b0; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2p1_multi_vec_extract_narrow opc> { @@ -8880,6 +9134,8 @@ let Inst{9-6} = Zn; let Inst{5} = 0b0; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2p1_multi_vec_shift_narrow opc> { @@ -8907,6 +9163,7 @@ let Inst{4-1} = Zt; let Inst{0} = n; + let hasSideEffects = 0; let mayLoad = 1; } @@ -8930,6 +9187,7 @@ let Inst{4-1} = Zt; let Inst{0} = n; + let hasSideEffects = 0; let mayLoad = 1; } @@ -8962,6 +9220,7 @@ let Inst{1} = 0b0; let Inst{0} = n; + let hasSideEffects = 0; let mayLoad = 1; } @@ -8986,6 +9245,7 @@ let Inst{1} = 0b0; let Inst{0} = n; + let hasSideEffects = 0; let mayLoad = 1; } @@ -9018,6 +9278,7 @@ let Inst{4-1} = Zt; let Inst{0} = n; + let hasSideEffects = 0; let mayStore = 1; } @@ -9042,6 +9303,7 @@ let Inst{4-1} = Zt; let Inst{0} = n; + let hasSideEffects = 0; let mayStore = 1; } @@ -9101,6 +9363,7 @@ let Inst{1} = 0b0; let Inst{0} = n; + let hasSideEffects = 0; let mayStore = 1; } @@ -9131,6 +9394,8 @@ let Inst{9} = 0b1; let Inst{8-5} = PNn; let Inst{4-0} = Rd; + + let hasSideEffects = 0; } multiclass sve2p1_pcount_pn opc> { @@ -9165,6 +9430,7 @@ let Inst{2-0} = PNd; let Defs = [NZCV]; + let hasSideEffects = 0; } @@ -9197,6 +9463,7 @@ let Inst{0} = opc{0}; let Defs = [NZCV]; + let hasSideEffects = 0; } @@ -9223,6 +9490,7 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -9249,6 +9517,7 @@ let Inst{9-5} = Zn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayStore = 1; } @@ -9279,6 +9548,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -9312,6 +9582,7 @@ let Inst{9-5} = Rn; let Inst{4-0} = Zt; + let hasSideEffects = 0; let mayLoad = 1; } @@ -9340,6 +9611,9 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Vd; + + let hasSideEffects = 0; + let mayRaiseFPException = 1; } multiclass sve2p1_fp_reduction_q opc, string mnemonic> { @@ -9361,6 +9635,8 @@ let Inst{15-10} = 0b001001; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2p1_dupq { @@ -9400,6 +9676,7 @@ let Constraints = "$Zdn = $_Zdn"; let DestructiveInstType = DestructiveOther; let ElementSize = ZPR8.ElementSize; + let hasSideEffects = 0; } @@ -9419,6 +9696,8 @@ let Inst{9-5} = Zn; let Inst{4} = 0b0; let Inst{3-0} = Pd; + + let hasSideEffects = 0; } multiclass sve2p1_vector_to_pred { @@ -9459,6 +9738,7 @@ let Inst{4-0} = Zd; let Constraints = "$Zd = $_Zd"; + let hasSideEffects = 0; } multiclass sve2p1_pred_to_vector { @@ -9501,6 +9781,8 @@ let Inst{12-10} = Pg; let Inst{9-5} = Zn; let Inst{4-0} = Vd; + + let hasSideEffects = 0; } multiclass sve2p1_int_reduce_q opc, string mnemonic> { @@ -9528,6 +9810,8 @@ let Inst{12-10} = opc; let Inst{9-5} = Zn; let Inst{4-0} = Zd; + + let hasSideEffects = 0; } multiclass sve2p1_permute_vec_elems_q opc, string mnemonic> { diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll b/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll --- a/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll @@ -21,8 +21,8 @@ ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 ; CHECK-NEXT: bl __extenddftf2 ; CHECK-NEXT: add x8, sp, #48 -; CHECK-NEXT: ldr z1, [x8] // 16-byte Folded Reload ; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: ldr z1, [x8] // 16-byte Folded Reload ; CHECK-NEXT: mov d1, v1.d[1] ; CHECK-NEXT: fmov d0, d1 ; CHECK-NEXT: bl __extenddftf2 @@ -32,8 +32,8 @@ ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 ; CHECK-NEXT: bl __extenddftf2 ; CHECK-NEXT: add x8, sp, #48 -; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: mov d1, v1.d[1] ; CHECK-NEXT: fmov d0, d1 ; CHECK-NEXT: bl __extenddftf2 diff --git a/llvm/test/CodeGen/AArch64/sve-insert-vector.ll b/llvm/test/CodeGen/AArch64/sve-insert-vector.ll --- a/llvm/test/CodeGen/AArch64/sve-insert-vector.ll +++ b/llvm/test/CodeGen/AArch64/sve-insert-vector.ll @@ -530,8 +530,8 @@ ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: ptrue p0.s -; CHECK-NEXT: st1h { z0.s }, p0, [sp, #1, mul vl] ; CHECK-NEXT: addpl x8, sp, #4 +; CHECK-NEXT: st1h { z0.s }, p0, [sp, #1, mul vl] ; CHECK-NEXT: str d1, [x8] ; CHECK-NEXT: ld1h { z0.s }, p0/z, [sp, #1, mul vl] ; CHECK-NEXT: addvl sp, sp, #1 diff --git a/llvm/test/tools/llvm-mca/AArch64/A64FX/A64FX-sve-instructions.s b/llvm/test/tools/llvm-mca/AArch64/A64FX/A64FX-sve-instructions.s --- a/llvm/test/tools/llvm-mca/AArch64/A64FX/A64FX-sve-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/A64FX/A64FX-sve-instructions.s @@ -2558,10 +2558,10 @@ # CHECK-NEXT: 1 4 0.50 add z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 4 0.50 add z31.s, z31.s, #65280 # CHECK-NEXT: 1 4 0.50 add z31.s, z31.s, z31.s -# CHECK-NEXT: 1 1 0.50 U addpl sp, sp, #31 -# CHECK-NEXT: 1 1 0.50 U addpl x0, x0, #-32 -# CHECK-NEXT: 1 1 0.50 U addpl x21, x21, #0 -# CHECK-NEXT: 1 1 0.50 U addpl x23, x8, #-1 +# CHECK-NEXT: 1 1 0.50 addpl sp, sp, #31 +# CHECK-NEXT: 1 1 0.50 addpl x0, x0, #-32 +# CHECK-NEXT: 1 1 0.50 addpl x21, x21, #0 +# CHECK-NEXT: 1 1 0.50 addpl x23, x8, #-1 # CHECK-NEXT: 1 1 0.50 addvl sp, sp, #31 # CHECK-NEXT: 1 1 0.50 addvl x0, x0, #-32 # CHECK-NEXT: 1 1 0.50 addvl x21, x21, #0 @@ -2597,7 +2597,7 @@ # CHECK-NEXT: 1 4 0.50 and z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 4 1.00 and z5.b, z5.b, #0x6 # CHECK-NEXT: 1 4 1.00 and z5.b, z5.b, #0xf9 -# CHECK-NEXT: 1 3 1.00 U ands p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 1 3 1.00 ands p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 10 46 5.00 andv b0, p7, z31.b # CHECK-NEXT: 7 34 3.50 andv d0, p7, z31.d # CHECK-NEXT: 9 42 4.50 andv h0, p7, z31.h @@ -2636,10 +2636,10 @@ # CHECK-NEXT: 2 8 1.00 asrd z31.d, p0/m, z31.d, #64 # CHECK-NEXT: 2 8 1.00 asrd z31.h, p0/m, z31.h, #16 # CHECK-NEXT: 2 8 1.00 asrd z31.s, p0/m, z31.s, #32 -# CHECK-NEXT: 1 4 0.50 U asrr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 4 0.50 U asrr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 4 0.50 U asrr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 4 0.50 U asrr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 4 0.50 asrr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 4 0.50 asrr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 4 0.50 asrr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 4 0.50 asrr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 3 1.00 bic p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 3 1.00 bic p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 4 0.50 bic z0.d, z0.d, z0.d @@ -2648,27 +2648,27 @@ # CHECK-NEXT: 1 4 0.50 bic z31.d, p7/m, z31.d, z31.d # CHECK-NEXT: 1 4 0.50 bic z31.h, p7/m, z31.h, z31.h # CHECK-NEXT: 1 4 0.50 bic z31.s, p7/m, z31.s, z31.s -# CHECK-NEXT: 1 3 1.00 U bics p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 1 3 1.00 U bics p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 bics p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 1 3 1.00 bics p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 3 1.00 brka p0.b, p15/m, p15.b # CHECK-NEXT: 1 3 1.00 brka p0.b, p15/z, p15.b -# CHECK-NEXT: 1 3 1.00 U brkas p0.b, p15/z, p15.b +# CHECK-NEXT: 1 3 1.00 brkas p0.b, p15/z, p15.b # CHECK-NEXT: 1 3 1.00 brkb p0.b, p15/m, p15.b # CHECK-NEXT: 1 3 1.00 brkb p0.b, p15/z, p15.b -# CHECK-NEXT: 1 3 1.00 U brkbs p0.b, p15/z, p15.b +# CHECK-NEXT: 1 3 1.00 brkbs p0.b, p15/z, p15.b # CHECK-NEXT: 1 3 1.00 brkn p0.b, p15/z, p1.b, p0.b # CHECK-NEXT: 1 3 1.00 brkn p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U brkns p0.b, p15/z, p1.b, p0.b -# CHECK-NEXT: 1 3 1.00 U brkns p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 brkns p0.b, p15/z, p1.b, p0.b +# CHECK-NEXT: 1 3 1.00 brkns p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 3 1.00 brkpa p0.b, p15/z, p1.b, p2.b # CHECK-NEXT: 1 3 1.00 brkpa p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U brkpas p0.b, p15/z, p1.b, p2.b -# CHECK-NEXT: 1 3 1.00 U brkpas p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 brkpas p0.b, p15/z, p1.b, p2.b +# CHECK-NEXT: 1 3 1.00 brkpas p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 3 1.00 brkpb p0.b, p15/z, p1.b, p2.b # CHECK-NEXT: 1 3 1.00 brkpb p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U brkpbs p0.b, p15/z, p1.b, p2.b -# CHECK-NEXT: 1 3 1.00 U brkpbs p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 6 1.00 U clasta b0, p7, b0, z31.b +# CHECK-NEXT: 1 3 1.00 brkpbs p0.b, p15/z, p1.b, p2.b +# CHECK-NEXT: 1 3 1.00 brkpbs p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 6 1.00 clasta b0, p7, b0, z31.b # CHECK-NEXT: 1 6 1.00 clasta d0, p7, d0, z31.d # CHECK-NEXT: 1 6 1.00 clasta h0, p7, h0, z31.h # CHECK-NEXT: 1 6 1.00 clasta s0, p7, s0, z31.s @@ -2680,7 +2680,7 @@ # CHECK-NEXT: 1 6 1.00 clasta z0.d, p7, z0.d, z31.d # CHECK-NEXT: 1 6 1.00 clasta z0.h, p7, z0.h, z31.h # CHECK-NEXT: 1 6 1.00 clasta z0.s, p7, z0.s, z31.s -# CHECK-NEXT: 1 6 1.00 U clastb b0, p7, b0, z31.b +# CHECK-NEXT: 1 6 1.00 clastb b0, p7, b0, z31.b # CHECK-NEXT: 1 6 1.00 clastb d0, p7, d0, z31.d # CHECK-NEXT: 1 6 1.00 clastb h0, p7, h0, z31.h # CHECK-NEXT: 1 6 1.00 clastb s0, p7, s0, z31.s @@ -2880,14 +2880,14 @@ # CHECK-NEXT: 1 1 0.50 cntw x0, pow2 # CHECK-NEXT: 1 6 1.00 compact z31.d, p7, z31.d # CHECK-NEXT: 1 6 1.00 compact z31.s, p7, z31.s -# CHECK-NEXT: 1 2 1.00 U ctermeq w30, wzr -# CHECK-NEXT: 1 2 1.00 U ctermeq wzr, w30 -# CHECK-NEXT: 1 2 1.00 U ctermeq x30, xzr -# CHECK-NEXT: 1 2 1.00 U ctermeq xzr, x30 -# CHECK-NEXT: 1 2 1.00 U ctermne w30, wzr -# CHECK-NEXT: 1 2 1.00 U ctermne wzr, w30 -# CHECK-NEXT: 1 2 1.00 U ctermne x30, xzr -# CHECK-NEXT: 1 2 1.00 U ctermne xzr, x30 +# CHECK-NEXT: 1 2 1.00 ctermeq w30, wzr +# CHECK-NEXT: 1 2 1.00 ctermeq wzr, w30 +# CHECK-NEXT: 1 2 1.00 ctermeq x30, xzr +# CHECK-NEXT: 1 2 1.00 ctermeq xzr, x30 +# CHECK-NEXT: 1 2 1.00 ctermne w30, wzr +# CHECK-NEXT: 1 2 1.00 ctermne wzr, w30 +# CHECK-NEXT: 1 2 1.00 ctermne x30, xzr +# CHECK-NEXT: 1 2 1.00 ctermne xzr, x30 # CHECK-NEXT: 1 1 0.50 decb x0 # CHECK-NEXT: 1 1 0.50 decb x0, #14 # CHECK-NEXT: 1 1 0.50 decb x0, all, mul #16 @@ -2911,9 +2911,9 @@ # CHECK-NEXT: 2 7 1.00 decp xzr, p15.d # CHECK-NEXT: 2 7 1.00 decp xzr, p15.h # CHECK-NEXT: 2 7 1.00 decp xzr, p15.s -# CHECK-NEXT: 1 12 1.00 U decp z31.d, p15.d -# CHECK-NEXT: 1 12 1.00 U decp z31.h, p15.h -# CHECK-NEXT: 1 12 1.00 U decp z31.s, p15.s +# CHECK-NEXT: 1 12 1.00 decp z31.d, p15.d +# CHECK-NEXT: 1 12 1.00 decp z31.h, p15.h +# CHECK-NEXT: 1 12 1.00 decp z31.s, p15.s # CHECK-NEXT: 1 1 0.50 decw x0 # CHECK-NEXT: 1 1 0.50 decw x0, #14 # CHECK-NEXT: 1 1 0.50 decw x0, all, mul #16 @@ -2938,7 +2938,7 @@ # CHECK-NEXT: 1 4 0.50 eor z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 4 1.00 eor z5.b, z5.b, #0x6 # CHECK-NEXT: 1 4 1.00 eor z5.b, z5.b, #0xf9 -# CHECK-NEXT: 1 3 1.00 U eors p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 1 3 1.00 eors p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 10 46 5.00 eorv b0, p7, z31.b # CHECK-NEXT: 7 34 3.50 eorv d0, p7, z31.d # CHECK-NEXT: 9 42 4.50 eorv h0, p7, z31.h @@ -3136,12 +3136,12 @@ # CHECK-NEXT: 2 15 1.00 fmls z0.s, z1.s, z7.s[3] # CHECK-NEXT: 1 6 1.00 fmov z0.d, #-10.00000000 # CHECK-NEXT: 1 6 1.00 fmov z0.d, #0.12500000 -# CHECK-NEXT: 1 4 1.00 U fmov z0.d, p0/m, #-10.00000000 -# CHECK-NEXT: 1 4 1.00 U fmov z0.d, p0/m, #0.12500000 +# CHECK-NEXT: 1 4 1.00 fmov z0.d, p0/m, #-10.00000000 +# CHECK-NEXT: 1 4 1.00 fmov z0.d, p0/m, #0.12500000 # CHECK-NEXT: 1 6 1.00 fmov z0.h, #-0.12500000 -# CHECK-NEXT: 1 4 1.00 U fmov z0.h, p0/m, #-0.12500000 +# CHECK-NEXT: 1 4 1.00 fmov z0.h, p0/m, #-0.12500000 # CHECK-NEXT: 1 6 1.00 fmov z0.s, #-0.12500000 -# CHECK-NEXT: 1 4 1.00 U fmov z0.s, p0/m, #-0.12500000 +# CHECK-NEXT: 1 4 1.00 fmov z0.s, p0/m, #-0.12500000 # CHECK-NEXT: 1 9 0.50 fmsb z0.d, p7/m, z1.d, z31.d # CHECK-NEXT: 1 9 0.50 fmsb z0.h, p7/m, z1.h, z31.h # CHECK-NEXT: 1 9 0.50 fmsb z0.s, p7/m, z1.s, z31.s @@ -3280,9 +3280,9 @@ # CHECK-NEXT: 2 7 1.00 incp xzr, p15.d # CHECK-NEXT: 2 7 1.00 incp xzr, p15.h # CHECK-NEXT: 2 7 1.00 incp xzr, p15.s -# CHECK-NEXT: 1 12 1.00 U incp z31.d, p15.d -# CHECK-NEXT: 1 12 1.00 U incp z31.h, p15.h -# CHECK-NEXT: 1 12 1.00 U incp z31.s, p15.s +# CHECK-NEXT: 1 12 1.00 incp z31.d, p15.d +# CHECK-NEXT: 1 12 1.00 incp z31.h, p15.h +# CHECK-NEXT: 1 12 1.00 incp z31.s, p15.s # CHECK-NEXT: 1 1 0.50 incw x0 # CHECK-NEXT: 1 1 0.50 incw x0, #14 # CHECK-NEXT: 1 1 0.50 incw x0, all, mul #16 @@ -3334,7 +3334,7 @@ # CHECK-NEXT: 1 10 1.00 insr z31.h, wzr # CHECK-NEXT: 1 6 1.00 insr z31.s, s31 # CHECK-NEXT: 1 10 1.00 insr z31.s, wzr -# CHECK-NEXT: 1 6 1.00 U lasta b0, p7, z31.b +# CHECK-NEXT: 1 6 1.00 lasta b0, p7, z31.b # CHECK-NEXT: 1 6 1.00 lasta d0, p7, z31.d # CHECK-NEXT: 1 6 1.00 lasta h0, p7, z31.h # CHECK-NEXT: 1 6 1.00 lasta s0, p7, z31.s @@ -3342,7 +3342,7 @@ # CHECK-NEXT: 1 29 1.00 lasta w0, p7, z31.h # CHECK-NEXT: 1 29 1.00 lasta w0, p7, z31.s # CHECK-NEXT: 1 29 1.00 lasta x0, p7, z31.d -# CHECK-NEXT: 1 6 1.00 U lastb b0, p7, z31.b +# CHECK-NEXT: 1 6 1.00 lastb b0, p7, z31.b # CHECK-NEXT: 1 6 1.00 lastb d0, p7, z31.d # CHECK-NEXT: 1 6 1.00 lastb h0, p7, z31.h # CHECK-NEXT: 1 6 1.00 lastb s0, p7, z31.s @@ -3352,68 +3352,68 @@ # CHECK-NEXT: 1 29 1.00 lastb x0, p7, z31.d # CHECK-NEXT: 1 11 0.50 * ld1b { z0.b }, p0/z, [sp, x0] # CHECK-NEXT: 1 11 0.50 * ld1b { z0.b }, p0/z, [x0, x0] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z0.b }, p0/z, [x0] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1b { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z0.h }, p0/z, [x0] -# CHECK-NEXT: 1 23 4.00 * U ld1b { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 23 4.00 * U ld1b { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z0.s }, p0/z, [x0] -# CHECK-NEXT: 1 19 4.00 * U ld1b { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z21.b }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1b { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1b { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1b { z0.b }, p0/z, [x0] +# CHECK-NEXT: 1 11 0.50 * ld1b { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1b { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 11 0.50 * ld1b { z0.h }, p0/z, [x0] +# CHECK-NEXT: 1 23 4.00 * ld1b { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 23 4.00 * ld1b { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1b { z0.s }, p0/z, [x0] +# CHECK-NEXT: 1 19 4.00 * ld1b { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 11 0.50 * ld1b { z21.b }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1b { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1b { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1b { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1b { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1b { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 11 0.50 * ld1b { z21.s }, p5/z, [x10, x21] # CHECK-NEXT: 1 11 0.50 * ld1b { z23.d }, p3/z, [x13, x8] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z31.b }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1b { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1b { z31.d }, p7/z, [z31.d, #31] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1b { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 19 4.00 * U ld1b { z31.s }, p7/z, [z31.s, #31] +# CHECK-NEXT: 1 11 0.50 * ld1b { z31.b }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1b { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1b { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1b { z31.d }, p7/z, [z31.d, #31] +# CHECK-NEXT: 1 11 0.50 * ld1b { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1b { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 19 4.00 * ld1b { z31.s }, p7/z, [z31.s, #31] # CHECK-NEXT: 1 11 0.50 * ld1b { z5.h }, p3/z, [x17, x16] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z0.d }, p0/z, [x0, z0.d, sxtw #3] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z0.d }, p0/z, [x0, z0.d, uxtw #3] -# CHECK-NEXT: 1 11 0.50 * U ld1d { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1d { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 11 0.50 * U ld1d { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 20 2.00 * ld1d { z0.d }, p0/z, [x0, z0.d, sxtw #3] +# CHECK-NEXT: 1 20 2.00 * ld1d { z0.d }, p0/z, [x0, z0.d, uxtw #3] +# CHECK-NEXT: 1 11 0.50 * ld1d { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1d { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 11 0.50 * ld1d { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1d { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1d { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 11 0.50 * ld1d { z23.d }, p3/z, [sp, x8, lsl #3] # CHECK-NEXT: 1 11 0.50 * ld1d { z23.d }, p3/z, [x13, x8, lsl #3] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z23.d }, p3/z, [x13, z8.d, lsl #3] -# CHECK-NEXT: 1 11 0.50 * U ld1d { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1d { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1d { z31.d }, p7/z, [z31.d, #248] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z0.d }, p0/z, [x0, z0.d, sxtw #1] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z0.d }, p0/z, [x0, z0.d, uxtw #1] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1h { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z0.h }, p0/z, [x0] -# CHECK-NEXT: 1 23 4.00 * U ld1h { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 23 4.00 * U ld1h { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z0.s }, p0/z, [x0] -# CHECK-NEXT: 1 19 4.00 * U ld1h { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1d { z23.d }, p3/z, [x13, z8.d, lsl #3] +# CHECK-NEXT: 1 11 0.50 * ld1d { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1d { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1d { z31.d }, p7/z, [z31.d, #248] +# CHECK-NEXT: 1 20 2.00 * ld1h { z0.d }, p0/z, [x0, z0.d, sxtw #1] +# CHECK-NEXT: 1 20 2.00 * ld1h { z0.d }, p0/z, [x0, z0.d, uxtw #1] +# CHECK-NEXT: 1 11 0.50 * ld1h { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1h { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 11 0.50 * ld1h { z0.h }, p0/z, [x0] +# CHECK-NEXT: 1 23 4.00 * ld1h { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 23 4.00 * ld1h { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1h { z0.s }, p0/z, [x0] +# CHECK-NEXT: 1 19 4.00 * ld1h { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 11 0.50 * ld1h { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1h { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1h { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1h { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1h { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 11 0.50 * ld1h { z21.s }, p5/z, [x10, x21, lsl #1] # CHECK-NEXT: 1 11 0.50 * ld1h { z23.d }, p3/z, [x13, x8, lsl #1] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z23.d }, p3/z, [x13, z8.d, lsl #1] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1h { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1h { z31.d }, p7/z, [z31.d, #62] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1h { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 23 4.00 * U ld1h { z31.s }, p7/z, [sp, z31.s, sxtw #1] -# CHECK-NEXT: 1 23 4.00 * U ld1h { z31.s }, p7/z, [sp, z31.s, uxtw #1] -# CHECK-NEXT: 1 19 4.00 * U ld1h { z31.s }, p7/z, [z31.s, #62] +# CHECK-NEXT: 1 20 2.00 * ld1h { z23.d }, p3/z, [x13, z8.d, lsl #1] +# CHECK-NEXT: 1 11 0.50 * ld1h { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1h { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1h { z31.d }, p7/z, [z31.d, #62] +# CHECK-NEXT: 1 11 0.50 * ld1h { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1h { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 23 4.00 * ld1h { z31.s }, p7/z, [sp, z31.s, sxtw #1] +# CHECK-NEXT: 1 23 4.00 * ld1h { z31.s }, p7/z, [sp, z31.s, uxtw #1] +# CHECK-NEXT: 1 19 4.00 * ld1h { z31.s }, p7/z, [z31.s, #62] # CHECK-NEXT: 1 11 0.50 * ld1h { z5.h }, p3/z, [sp, x16, lsl #1] # CHECK-NEXT: 1 11 0.50 * ld1h { z5.h }, p3/z, [x17, x16, lsl #1] # CHECK-NEXT: 1 11 0.50 * ld1rb { z0.b }, p0/z, [x0] @@ -3468,146 +3468,146 @@ # CHECK-NEXT: 1 11 0.50 * ld1rw { z0.s }, p0/z, [x0] # CHECK-NEXT: 1 11 0.50 * ld1rw { z31.d }, p7/z, [sp, #252] # CHECK-NEXT: 1 11 0.50 * ld1rw { z31.s }, p7/z, [sp, #252] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1sb { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1sb { z0.d }, p0/z, [z0.d] # CHECK-NEXT: 1 11 0.50 * ld1sb { z0.h }, p0/z, [sp, x0] # CHECK-NEXT: 1 11 0.50 * ld1sb { z0.h }, p0/z, [x0, x0] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z0.h }, p0/z, [x0] -# CHECK-NEXT: 1 23 4.00 * U ld1sb { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z0.s }, p0/z, [x0] -# CHECK-NEXT: 1 19 4.00 * U ld1sb { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sb { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1sb { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z0.h }, p0/z, [x0] +# CHECK-NEXT: 1 23 4.00 * ld1sb { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z0.s }, p0/z, [x0] +# CHECK-NEXT: 1 19 4.00 * ld1sb { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sb { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1sb { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 11 0.50 * ld1sb { z21.s }, p5/z, [x10, x21] # CHECK-NEXT: 1 11 0.50 * ld1sb { z23.d }, p3/z, [x13, x8] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sb { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1sb { z31.d }, p7/z, [z31.d, #31] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 11 0.50 * U ld1sb { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 19 4.00 * U ld1sb { z31.s }, p7/z, [z31.s, #31] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z0.d }, p0/z, [x0, z0.d, sxtw #1] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z0.d }, p0/z, [x0, z0.d, uxtw #1] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1sh { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 23 4.00 * U ld1sh { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 23 4.00 * U ld1sh { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z0.s }, p0/z, [x0] -# CHECK-NEXT: 1 19 4.00 * U ld1sh { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sb { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1sb { z31.d }, p7/z, [z31.d, #31] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1sb { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 19 4.00 * ld1sb { z31.s }, p7/z, [z31.s, #31] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z0.d }, p0/z, [x0, z0.d, sxtw #1] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z0.d }, p0/z, [x0, z0.d, uxtw #1] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1sh { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 23 4.00 * ld1sh { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 23 4.00 * ld1sh { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z0.s }, p0/z, [x0] +# CHECK-NEXT: 1 19 4.00 * ld1sh { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 11 0.50 * ld1sh { z21.s }, p5/z, [sp, x21, lsl #1] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 11 0.50 * ld1sh { z21.s }, p5/z, [x10, x21, lsl #1] # CHECK-NEXT: 1 11 0.50 * ld1sh { z23.d }, p3/z, [x13, x8, lsl #1] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z23.d }, p3/z, [x13, z8.d, lsl #1] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sh { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1sh { z31.d }, p7/z, [z31.d, #62] -# CHECK-NEXT: 1 11 0.50 * U ld1sh { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 23 4.00 * U ld1sh { z31.s }, p7/z, [sp, z31.s, sxtw #1] -# CHECK-NEXT: 1 23 4.00 * U ld1sh { z31.s }, p7/z, [sp, z31.s, uxtw #1] -# CHECK-NEXT: 1 19 4.00 * U ld1sh { z31.s }, p7/z, [z31.s, #62] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z0.d }, p0/z, [x0, z0.d, sxtw #2] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z0.d }, p0/z, [x0, z0.d, uxtw #2] -# CHECK-NEXT: 1 11 0.50 * U ld1sw { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1sw { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 11 0.50 * U ld1sw { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z23.d }, p3/z, [x13, z8.d, lsl #1] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sh { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1sh { z31.d }, p7/z, [z31.d, #62] +# CHECK-NEXT: 1 11 0.50 * ld1sh { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 23 4.00 * ld1sh { z31.s }, p7/z, [sp, z31.s, sxtw #1] +# CHECK-NEXT: 1 23 4.00 * ld1sh { z31.s }, p7/z, [sp, z31.s, uxtw #1] +# CHECK-NEXT: 1 19 4.00 * ld1sh { z31.s }, p7/z, [z31.s, #62] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z0.d }, p0/z, [x0, z0.d, sxtw #2] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z0.d }, p0/z, [x0, z0.d, uxtw #2] +# CHECK-NEXT: 1 11 0.50 * ld1sw { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1sw { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 11 0.50 * ld1sw { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 11 0.50 * ld1sw { z23.d }, p3/z, [sp, x8, lsl #2] # CHECK-NEXT: 1 11 0.50 * ld1sw { z23.d }, p3/z, [x13, x8, lsl #2] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z23.d }, p3/z, [x13, z8.d, lsl #2] -# CHECK-NEXT: 1 11 0.50 * U ld1sw { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1sw { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1sw { z31.d }, p7/z, [z31.d, #124] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z0.d }, p0/z, [x0, z0.d, sxtw #2] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z0.d }, p0/z, [x0, z0.d, uxtw #2] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z0.d }, p0/z, [x0] -# CHECK-NEXT: 1 16 2.00 * U ld1w { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 23 4.00 * U ld1w { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 23 4.00 * U ld1w { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z0.s }, p0/z, [x0] -# CHECK-NEXT: 1 19 4.00 * U ld1w { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z23.d }, p3/z, [x13, z8.d, lsl #2] +# CHECK-NEXT: 1 11 0.50 * ld1sw { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1sw { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1sw { z31.d }, p7/z, [z31.d, #124] +# CHECK-NEXT: 1 20 2.00 * ld1w { z0.d }, p0/z, [x0, z0.d, sxtw #2] +# CHECK-NEXT: 1 20 2.00 * ld1w { z0.d }, p0/z, [x0, z0.d, uxtw #2] +# CHECK-NEXT: 1 11 0.50 * ld1w { z0.d }, p0/z, [x0] +# CHECK-NEXT: 1 16 2.00 * ld1w { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 23 4.00 * ld1w { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 23 4.00 * ld1w { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 11 0.50 * ld1w { z0.s }, p0/z, [x0] +# CHECK-NEXT: 1 19 4.00 * ld1w { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 11 0.50 * ld1w { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1w { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 1 20 2.00 * ld1w { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 11 0.50 * ld1w { z21.s }, p5/z, [sp, x21, lsl #2] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 11 0.50 * ld1w { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 11 0.50 * ld1w { z21.s }, p5/z, [x10, x21, lsl #2] # CHECK-NEXT: 1 11 0.50 * ld1w { z23.d }, p3/z, [x13, x8, lsl #2] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z23.d }, p3/z, [x13, z8.d, lsl #2] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 20 2.00 * U ld1w { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 1 16 2.00 * U ld1w { z31.d }, p7/z, [z31.d, #124] -# CHECK-NEXT: 1 11 0.50 * U ld1w { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 23 4.00 * U ld1w { z31.s }, p7/z, [sp, z31.s, sxtw #2] -# CHECK-NEXT: 1 23 4.00 * U ld1w { z31.s }, p7/z, [sp, z31.s, uxtw #2] -# CHECK-NEXT: 1 19 4.00 * U ld1w { z31.s }, p7/z, [z31.s, #124] -# CHECK-NEXT: 3 15 4.50 * U ld2b { z0.b, z1.b }, p0/z, [x0, x0] -# CHECK-NEXT: 3 15 4.50 * U ld2b { z0.b, z1.b }, p0/z, [x0] -# CHECK-NEXT: 3 15 4.50 * U ld2b { z21.b, z22.b }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 3 15 4.50 * U ld2b { z23.b, z24.b }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 3 15 4.50 * U ld2b { z5.b, z6.b }, p3/z, [x17, x16] -# CHECK-NEXT: 3 12 1.50 * U ld2d { z0.d, z1.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 2 11 1.00 * U ld2d { z0.d, z1.d }, p0/z, [x0] -# CHECK-NEXT: 2 11 1.00 * U ld2d { z21.d, z22.d }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 11 1.00 * U ld2d { z23.d, z24.d }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 3 12 1.50 * U ld2d { z5.d, z6.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 3 15 4.50 * U ld2h { z0.h, z1.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 3 15 4.50 * U ld2h { z0.h, z1.h }, p0/z, [x0] -# CHECK-NEXT: 3 15 4.50 * U ld2h { z21.h, z22.h }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 3 15 4.50 * U ld2h { z23.h, z24.h }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 3 15 4.50 * U ld2h { z5.h, z6.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 3 12 1.50 * U ld2w { z0.s, z1.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 2 11 1.00 * U ld2w { z0.s, z1.s }, p0/z, [x0] -# CHECK-NEXT: 2 11 1.00 * U ld2w { z21.s, z22.s }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 11 1.00 * U ld2w { z23.s, z24.s }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 3 12 1.50 * U ld2w { z5.s, z6.s }, p3/z, [x17, x16, lsl #2] -# CHECK-NEXT: 4 15 6.50 * U ld3b { z0.b - z2.b }, p0/z, [x0, x0] -# CHECK-NEXT: 4 15 6.50 * U ld3b { z0.b - z2.b }, p0/z, [x0] -# CHECK-NEXT: 4 15 6.50 * U ld3b { z21.b - z23.b }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 4 15 6.50 * U ld3b { z23.b - z25.b }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 4 15 6.50 * U ld3b { z5.b - z7.b }, p3/z, [x17, x16] -# CHECK-NEXT: 4 12 2.00 * U ld3d { z0.d - z2.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 3 11 1.50 * U ld3d { z0.d - z2.d }, p0/z, [x0] -# CHECK-NEXT: 3 11 1.50 * U ld3d { z21.d - z23.d }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 3 11 1.50 * U ld3d { z23.d - z25.d }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 4 12 2.00 * U ld3d { z5.d - z7.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 4 15 6.50 * U ld3h { z0.h - z2.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 4 15 6.50 * U ld3h { z0.h - z2.h }, p0/z, [x0] -# CHECK-NEXT: 4 15 6.50 * U ld3h { z21.h - z23.h }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 4 15 6.50 * U ld3h { z23.h - z25.h }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 4 15 6.50 * U ld3h { z5.h - z7.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 4 12 2.00 * U ld3w { z0.s - z2.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 3 11 1.50 * U ld3w { z0.s - z2.s }, p0/z, [x0] -# CHECK-NEXT: 3 11 1.50 * U ld3w { z21.s - z23.s }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 3 11 1.50 * U ld3w { z23.s - z25.s }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 4 12 2.00 * U ld3w { z5.s - z7.s }, p3/z, [x17, x16, lsl #2] -# CHECK-NEXT: 5 15 8.50 * U ld4b { z0.b - z3.b }, p0/z, [x0, x0] -# CHECK-NEXT: 5 15 8.50 * U ld4b { z0.b - z3.b }, p0/z, [x0] -# CHECK-NEXT: 5 15 8.50 * U ld4b { z21.b - z24.b }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 5 15 8.50 * U ld4b { z23.b - z26.b }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 5 15 8.50 * U ld4b { z5.b - z8.b }, p3/z, [x17, x16] -# CHECK-NEXT: 5 12 2.50 * U ld4d { z0.d - z3.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 4 11 2.00 * U ld4d { z0.d - z3.d }, p0/z, [x0] -# CHECK-NEXT: 4 11 2.00 * U ld4d { z21.d - z24.d }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 11 2.00 * U ld4d { z23.d - z26.d }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 5 12 2.50 * U ld4d { z5.d - z8.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 5 15 8.50 * U ld4h { z0.h - z3.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 5 15 8.50 * U ld4h { z0.h - z3.h }, p0/z, [x0] -# CHECK-NEXT: 5 15 8.50 * U ld4h { z21.h - z24.h }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 5 15 8.50 * U ld4h { z23.h - z26.h }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 5 15 8.50 * U ld4h { z5.h - z8.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 5 12 2.50 * U ld4w { z0.s - z3.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 4 11 2.00 * U ld4w { z0.s - z3.s }, p0/z, [x0] -# CHECK-NEXT: 4 11 2.00 * U ld4w { z21.s - z24.s }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 11 2.00 * U ld4w { z23.s - z26.s }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 5 12 2.50 * U ld4w { z5.s - z8.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 1 20 2.00 * ld1w { z23.d }, p3/z, [x13, z8.d, lsl #2] +# CHECK-NEXT: 1 11 0.50 * ld1w { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 20 2.00 * ld1w { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 1 16 2.00 * ld1w { z31.d }, p7/z, [z31.d, #124] +# CHECK-NEXT: 1 11 0.50 * ld1w { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 23 4.00 * ld1w { z31.s }, p7/z, [sp, z31.s, sxtw #2] +# CHECK-NEXT: 1 23 4.00 * ld1w { z31.s }, p7/z, [sp, z31.s, uxtw #2] +# CHECK-NEXT: 1 19 4.00 * ld1w { z31.s }, p7/z, [z31.s, #124] +# CHECK-NEXT: 3 15 4.50 * ld2b { z0.b, z1.b }, p0/z, [x0, x0] +# CHECK-NEXT: 3 15 4.50 * ld2b { z0.b, z1.b }, p0/z, [x0] +# CHECK-NEXT: 3 15 4.50 * ld2b { z21.b, z22.b }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 3 15 4.50 * ld2b { z23.b, z24.b }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 3 15 4.50 * ld2b { z5.b, z6.b }, p3/z, [x17, x16] +# CHECK-NEXT: 3 12 1.50 * ld2d { z0.d, z1.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 2 11 1.00 * ld2d { z0.d, z1.d }, p0/z, [x0] +# CHECK-NEXT: 2 11 1.00 * ld2d { z21.d, z22.d }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 11 1.00 * ld2d { z23.d, z24.d }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 3 12 1.50 * ld2d { z5.d, z6.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 3 15 4.50 * ld2h { z0.h, z1.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 3 15 4.50 * ld2h { z0.h, z1.h }, p0/z, [x0] +# CHECK-NEXT: 3 15 4.50 * ld2h { z21.h, z22.h }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 3 15 4.50 * ld2h { z23.h, z24.h }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 3 15 4.50 * ld2h { z5.h, z6.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 3 12 1.50 * ld2w { z0.s, z1.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 2 11 1.00 * ld2w { z0.s, z1.s }, p0/z, [x0] +# CHECK-NEXT: 2 11 1.00 * ld2w { z21.s, z22.s }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 11 1.00 * ld2w { z23.s, z24.s }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 3 12 1.50 * ld2w { z5.s, z6.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 4 15 6.50 * ld3b { z0.b - z2.b }, p0/z, [x0, x0] +# CHECK-NEXT: 4 15 6.50 * ld3b { z0.b - z2.b }, p0/z, [x0] +# CHECK-NEXT: 4 15 6.50 * ld3b { z21.b - z23.b }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 4 15 6.50 * ld3b { z23.b - z25.b }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 4 15 6.50 * ld3b { z5.b - z7.b }, p3/z, [x17, x16] +# CHECK-NEXT: 4 12 2.00 * ld3d { z0.d - z2.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 3 11 1.50 * ld3d { z0.d - z2.d }, p0/z, [x0] +# CHECK-NEXT: 3 11 1.50 * ld3d { z21.d - z23.d }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 3 11 1.50 * ld3d { z23.d - z25.d }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 4 12 2.00 * ld3d { z5.d - z7.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 4 15 6.50 * ld3h { z0.h - z2.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 4 15 6.50 * ld3h { z0.h - z2.h }, p0/z, [x0] +# CHECK-NEXT: 4 15 6.50 * ld3h { z21.h - z23.h }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 4 15 6.50 * ld3h { z23.h - z25.h }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 4 15 6.50 * ld3h { z5.h - z7.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 4 12 2.00 * ld3w { z0.s - z2.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 3 11 1.50 * ld3w { z0.s - z2.s }, p0/z, [x0] +# CHECK-NEXT: 3 11 1.50 * ld3w { z21.s - z23.s }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 3 11 1.50 * ld3w { z23.s - z25.s }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 4 12 2.00 * ld3w { z5.s - z7.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 5 15 8.50 * ld4b { z0.b - z3.b }, p0/z, [x0, x0] +# CHECK-NEXT: 5 15 8.50 * ld4b { z0.b - z3.b }, p0/z, [x0] +# CHECK-NEXT: 5 15 8.50 * ld4b { z21.b - z24.b }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 5 15 8.50 * ld4b { z23.b - z26.b }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 5 15 8.50 * ld4b { z5.b - z8.b }, p3/z, [x17, x16] +# CHECK-NEXT: 5 12 2.50 * ld4d { z0.d - z3.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 4 11 2.00 * ld4d { z0.d - z3.d }, p0/z, [x0] +# CHECK-NEXT: 4 11 2.00 * ld4d { z21.d - z24.d }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 11 2.00 * ld4d { z23.d - z26.d }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 5 12 2.50 * ld4d { z5.d - z8.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 5 15 8.50 * ld4h { z0.h - z3.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 5 15 8.50 * ld4h { z0.h - z3.h }, p0/z, [x0] +# CHECK-NEXT: 5 15 8.50 * ld4h { z21.h - z24.h }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 5 15 8.50 * ld4h { z23.h - z26.h }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 5 15 8.50 * ld4h { z5.h - z8.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 5 12 2.50 * ld4w { z0.s - z3.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 4 11 2.00 * ld4w { z0.s - z3.s }, p0/z, [x0] +# CHECK-NEXT: 4 11 2.00 * ld4w { z21.s - z24.s }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 11 2.00 * ld4w { z23.s - z26.s }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 5 12 2.50 * ld4w { z5.s - z8.s }, p3/z, [x17, x16, lsl #2] # CHECK-NEXT: 1 11 0.50 * U ldff1b { z0.d }, p0/z, [x0, x0] # CHECK-NEXT: 1 16 2.00 * U ldff1b { z0.d }, p0/z, [z0.d] # CHECK-NEXT: 1 11 0.50 * U ldff1b { z0.h }, p0/z, [x0, x0] @@ -3782,9 +3782,9 @@ # CHECK-NEXT: 1 11 1.00 * ldr p0, [x0] # CHECK-NEXT: 1 11 1.00 * ldr p5, [x10, #255, mul vl] # CHECK-NEXT: 1 11 1.00 * ldr p7, [x13, #-256, mul vl] -# CHECK-NEXT: 1 11 1.00 * U ldr z0, [x0] -# CHECK-NEXT: 1 11 1.00 * U ldr z23, [x13, #255, mul vl] -# CHECK-NEXT: 1 11 1.00 * U ldr z31, [sp, #-256, mul vl] +# CHECK-NEXT: 1 11 1.00 * ldr z0, [x0] +# CHECK-NEXT: 1 11 1.00 * ldr z23, [x13, #255, mul vl] +# CHECK-NEXT: 1 11 1.00 * ldr z31, [sp, #-256, mul vl] # CHECK-NEXT: 1 4 0.50 lsl z0.b, p0/m, z0.b, #0 # CHECK-NEXT: 1 4 0.50 lsl z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 4 0.50 lsl z0.b, p0/m, z0.b, z1.d @@ -3811,10 +3811,10 @@ # CHECK-NEXT: 1 4 0.50 lsl z31.h, z31.h, #15 # CHECK-NEXT: 1 4 0.50 lsl z31.s, p0/m, z31.s, #31 # CHECK-NEXT: 1 4 0.50 lsl z31.s, z31.s, #31 -# CHECK-NEXT: 1 4 0.50 U lslr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 4 0.50 U lslr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 4 0.50 U lslr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 4 0.50 U lslr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 4 0.50 lslr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 4 0.50 lslr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 4 0.50 lslr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 4 0.50 lslr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 4 0.50 lsr z0.b, p0/m, z0.b, #1 # CHECK-NEXT: 1 4 0.50 lsr z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 4 0.50 lsr z0.b, p0/m, z0.b, z1.d @@ -3841,10 +3841,10 @@ # CHECK-NEXT: 1 4 0.50 lsr z31.h, z31.h, #16 # CHECK-NEXT: 1 4 0.50 lsr z31.s, p0/m, z31.s, #32 # CHECK-NEXT: 1 4 0.50 lsr z31.s, z31.s, #32 -# CHECK-NEXT: 1 4 0.50 U lsrr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 4 0.50 U lsrr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 4 0.50 U lsrr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 4 0.50 U lsrr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 4 0.50 lsrr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 4 0.50 lsrr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 4 0.50 lsrr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 4 0.50 lsrr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 9 0.50 mad z0.b, p7/m, z1.b, z31.b # CHECK-NEXT: 1 9 0.50 mad z0.d, p7/m, z1.d, z31.d # CHECK-NEXT: 1 9 0.50 mad z0.h, p7/m, z1.h, z31.h @@ -3865,7 +3865,7 @@ # CHECK-NEXT: 1 3 1.00 mov p15.b, p15/z, p15.b # CHECK-NEXT: 1 4 1.00 mov z0.b, #127 # CHECK-NEXT: 1 4 1.00 mov z0.b, b0 -# CHECK-NEXT: 1 6 1.00 U mov z0.b, p0/m, b0 +# CHECK-NEXT: 1 6 1.00 mov z0.b, p0/m, b0 # CHECK-NEXT: 1 8 1.00 mov z0.b, p0/m, w0 # CHECK-NEXT: 1 4 1.00 mov z0.b, p0/z, #127 # CHECK-NEXT: 1 6 1.00 mov z0.b, w0 @@ -3927,14 +3927,14 @@ # CHECK-NEXT: 1 4 1.00 mov z21.s, p15/m, #-128 # CHECK-NEXT: 1 4 1.00 mov z21.s, p15/m, #-32768 # CHECK-NEXT: 1 4 0.50 mov z31.b, p15/m, z31.b -# CHECK-NEXT: 1 6 1.00 U mov z31.b, p7/m, b31 +# CHECK-NEXT: 1 6 1.00 mov z31.b, p7/m, b31 # CHECK-NEXT: 1 1 0.17 movprfx z31, z6 # CHECK-NEXT: 1 8 1.00 mov z31.b, p7/m, wsp # CHECK-NEXT: 1 6 1.00 mov z31.b, wsp # CHECK-NEXT: 1 4 1.00 mov z31.b, z31.b[63] # CHECK-NEXT: 1 4 0.50 mov z31.d, p15/m, z31.d # CHECK-NEXT: 1 6 1.00 mov z31.d, p7/m, d31 -# CHECK-NEXT: 1 1 0.17 U movprfx z31.d, p7/z, z6.d +# CHECK-NEXT: 1 1 0.17 movprfx z31.d, p7/z, z6.d # CHECK-NEXT: 1 8 1.00 mov z31.d, p7/m, sp # CHECK-NEXT: 1 6 1.00 mov z31.d, sp # CHECK-NEXT: 1 4 0.50 mov z31.d, z0.d @@ -3960,10 +3960,10 @@ # CHECK-NEXT: 1 4 1.00 mov z5.h, #-6 # CHECK-NEXT: 1 4 1.00 mov z5.q, z17.q[3] # CHECK-NEXT: 1 4 1.00 mov z5.s, #-6 -# CHECK-NEXT: 1 3 1.00 U movs p0.b, p0.b -# CHECK-NEXT: 1 3 1.00 U movs p0.b, p0/z, p0.b -# CHECK-NEXT: 1 3 1.00 U movs p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U movs p15.b, p15/z, p15.b +# CHECK-NEXT: 1 3 1.00 movs p0.b, p0.b +# CHECK-NEXT: 1 3 1.00 movs p0.b, p0/z, p0.b +# CHECK-NEXT: 1 3 1.00 movs p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 movs p15.b, p15/z, p15.b # CHECK-NEXT: 1 1 0.17 U mrs x3, ID_AA64ZFR0_EL1 # CHECK-NEXT: 1 1 0.17 U mrs x3, ZCR_EL1 # CHECK-NEXT: 1 1 0.17 U mrs x3, ZCR_EL12 @@ -3991,8 +3991,8 @@ # CHECK-NEXT: 1 9 1.00 mul z31.s, z31.s, #127 # CHECK-NEXT: 1 3 1.00 nand p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 3 1.00 nand p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U nands p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 1 3 1.00 U nands p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 nands p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 1 3 1.00 nands p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 4 1.00 neg z0.b, p0/m, z0.b # CHECK-NEXT: 1 4 1.00 neg z0.d, p0/m, z0.d # CHECK-NEXT: 1 4 1.00 neg z0.h, p0/m, z0.h @@ -4003,20 +4003,20 @@ # CHECK-NEXT: 1 4 1.00 neg z31.s, p7/m, z31.s # CHECK-NEXT: 1 3 1.00 nor p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 3 1.00 nor p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U nors p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 1 3 1.00 U nors p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 nors p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 1 3 1.00 nors p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 3 1.00 not p0.b, p0/z, p0.b # CHECK-NEXT: 1 3 1.00 not p15.b, p15/z, p15.b # CHECK-NEXT: 1 4 0.50 not z31.b, p7/m, z31.b # CHECK-NEXT: 1 4 0.50 not z31.d, p7/m, z31.d # CHECK-NEXT: 1 4 0.50 not z31.h, p7/m, z31.h # CHECK-NEXT: 1 4 0.50 not z31.s, p7/m, z31.s -# CHECK-NEXT: 1 3 1.00 U nots p0.b, p0/z, p0.b -# CHECK-NEXT: 1 3 1.00 U nots p15.b, p15/z, p15.b +# CHECK-NEXT: 1 3 1.00 nots p0.b, p0/z, p0.b +# CHECK-NEXT: 1 3 1.00 nots p15.b, p15/z, p15.b # CHECK-NEXT: 1 3 1.00 orn p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 3 1.00 orn p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 1 3 1.00 U orns p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 1 3 1.00 U orns p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 1 3 1.00 orns p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 1 3 1.00 orns p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 3 1.00 orr p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 1 4 1.00 orr z0.d, z0.d, #0x6 # CHECK-NEXT: 1 4 1.00 orr z0.d, z0.d, #0xfffffffffffffff9 @@ -4031,7 +4031,7 @@ # CHECK-NEXT: 1 4 0.50 orr z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 4 1.00 orr z5.b, z5.b, #0x6 # CHECK-NEXT: 1 4 1.00 orr z5.b, z5.b, #0xf9 -# CHECK-NEXT: 1 3 1.00 U orrs p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 1 3 1.00 orrs p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 10 46 5.00 orv b0, p7, z31.b # CHECK-NEXT: 7 34 3.50 orv d0, p7, z31.d # CHECK-NEXT: 9 42 4.50 orv h0, p7, z31.h @@ -4048,8 +4048,8 @@ # CHECK-NEXT: 1 1 0.50 * * U prfb #15, p0, [x0] # CHECK-NEXT: 1 1 0.50 * * U prfb #6, p0, [x0] # CHECK-NEXT: 1 1 0.50 * * U prfb #7, p0, [x0] -# CHECK-NEXT: 1 1 2.00 * * prfb #7, p3, [z13.s, #31] -# CHECK-NEXT: 1 1 2.00 * * prfb #7, p3, [z13.s] +# CHECK-NEXT: 1 1 2.00 * * U prfb #7, p3, [z13.s, #31] +# CHECK-NEXT: 1 1 2.00 * * U prfb #7, p3, [z13.s] # CHECK-NEXT: 1 1 1.00 * * U prfb pldl1keep, p0, [x0, z0.d, uxtw] # CHECK-NEXT: 1 1 1.00 * * U prfb pldl1keep, p0, [x0, z0.d] # CHECK-NEXT: 1 1 2.00 * * U prfb pldl1keep, p0, [x0, z0.s, uxtw] @@ -4075,8 +4075,8 @@ # CHECK-NEXT: 1 1 0.50 * * U prfd #15, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfd #15, p7, [z31.d, #248] # CHECK-NEXT: 1 1 1.00 * * U prfd #15, p7, [z31.d] -# CHECK-NEXT: 1 1 2.00 * * prfd #15, p7, [z31.s, #248] -# CHECK-NEXT: 1 1 2.00 * * prfd #15, p7, [z31.s] +# CHECK-NEXT: 1 1 2.00 * * U prfd #15, p7, [z31.s, #248] +# CHECK-NEXT: 1 1 2.00 * * U prfd #15, p7, [z31.s] # CHECK-NEXT: 1 1 0.50 * * U prfd #6, p0, [x0] # CHECK-NEXT: 1 1 0.50 * * U prfd #7, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfd pldl1keep, p0, [x0, z0.d, lsl #3] @@ -4102,8 +4102,8 @@ # CHECK-NEXT: 1 1 0.50 * * U prfh #15, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfh #15, p7, [z31.d, #62] # CHECK-NEXT: 1 1 1.00 * * U prfh #15, p7, [z31.d] -# CHECK-NEXT: 1 1 2.00 * * prfh #15, p7, [z31.s, #62] -# CHECK-NEXT: 1 1 2.00 * * prfh #15, p7, [z31.s] +# CHECK-NEXT: 1 1 2.00 * * U prfh #15, p7, [z31.s, #62] +# CHECK-NEXT: 1 1 2.00 * * U prfh #15, p7, [z31.s] # CHECK-NEXT: 1 1 0.50 * * U prfh #6, p0, [x0] # CHECK-NEXT: 1 1 0.50 * * U prfh #7, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfh pldl1keep, p0, [x0, z0.d, lsl #1] @@ -4129,8 +4129,8 @@ # CHECK-NEXT: 1 1 0.50 * * U prfw #15, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfw #15, p7, [z31.d, #124] # CHECK-NEXT: 1 1 1.00 * * U prfw #15, p7, [z31.d] -# CHECK-NEXT: 1 1 2.00 * * prfw #15, p7, [z31.s, #124] -# CHECK-NEXT: 1 1 2.00 * * prfw #15, p7, [z31.s] +# CHECK-NEXT: 1 1 2.00 * * U prfw #15, p7, [z31.s, #124] +# CHECK-NEXT: 1 1 2.00 * * U prfw #15, p7, [z31.s] # CHECK-NEXT: 1 1 0.50 * * U prfw #6, p0, [x0] # CHECK-NEXT: 1 1 0.50 * * U prfw #7, p0, [x0] # CHECK-NEXT: 1 1 1.00 * * U prfw #7, p3, [x13, z8.d, uxtw #2] @@ -4193,45 +4193,45 @@ # CHECK-NEXT: 1 3 1.00 ptrue p7.s, vl64 # CHECK-NEXT: 1 3 1.00 ptrue p7.s, vl7 # CHECK-NEXT: 1 3 1.00 ptrue p7.s, vl8 -# CHECK-NEXT: 1 3 1.00 U ptrues p0.b, pow2 -# CHECK-NEXT: 1 3 1.00 U ptrues p0.d, pow2 -# CHECK-NEXT: 1 3 1.00 U ptrues p0.h, pow2 -# CHECK-NEXT: 1 3 1.00 U ptrues p0.s, pow2 -# CHECK-NEXT: 1 3 1.00 U ptrues p15.b -# CHECK-NEXT: 1 3 1.00 U ptrues p15.d -# CHECK-NEXT: 1 3 1.00 U ptrues p15.h -# CHECK-NEXT: 1 3 1.00 U ptrues p15.s -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #14 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #15 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #16 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #17 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #18 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #19 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #20 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #21 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #22 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #23 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #24 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #25 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #26 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #27 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, #28 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, mul3 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, mul4 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl1 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl128 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl16 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl2 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl256 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl3 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl32 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl4 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl5 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl6 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl64 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl7 -# CHECK-NEXT: 1 3 1.00 U ptrues p7.s, vl8 +# CHECK-NEXT: 1 3 1.00 ptrues p0.b, pow2 +# CHECK-NEXT: 1 3 1.00 ptrues p0.d, pow2 +# CHECK-NEXT: 1 3 1.00 ptrues p0.h, pow2 +# CHECK-NEXT: 1 3 1.00 ptrues p0.s, pow2 +# CHECK-NEXT: 1 3 1.00 ptrues p15.b +# CHECK-NEXT: 1 3 1.00 ptrues p15.d +# CHECK-NEXT: 1 3 1.00 ptrues p15.h +# CHECK-NEXT: 1 3 1.00 ptrues p15.s +# CHECK-NEXT: 1 3 1.00 ptrues p7.s +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #14 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #15 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #16 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #17 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #18 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #19 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #20 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #21 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #22 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #23 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #24 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #25 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #26 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #27 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, #28 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, mul3 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, mul4 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl1 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl128 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl16 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl2 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl256 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl3 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl32 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl4 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl5 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl6 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl64 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl7 +# CHECK-NEXT: 1 3 1.00 ptrues p7.s, vl8 # CHECK-NEXT: 1 3 1.00 punpkhi p0.h, p0.b # CHECK-NEXT: 1 3 1.00 punpkhi p15.h, p15.b # CHECK-NEXT: 1 3 1.00 punpklo p0.h, p0.b @@ -4347,19 +4347,19 @@ # CHECK-NEXT: 1 2 1.00 sqdecb x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecb x0, pow2 # CHECK-NEXT: 1 2 1.00 sqdecb x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqdecb x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqdecb x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqdecb x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqdecb x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecb x0, w0 +# CHECK-NEXT: 1 2 1.00 sqdecb x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecb x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqdecb x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecd x0 # CHECK-NEXT: 1 2 1.00 sqdecd x0, #14 # CHECK-NEXT: 1 2 1.00 sqdecd x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecd x0, pow2 # CHECK-NEXT: 1 2 1.00 sqdecd x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqdecd x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqdecd x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqdecd x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqdecd x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecd x0, w0 +# CHECK-NEXT: 1 2 1.00 sqdecd x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecd x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqdecd x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqdecd z0.d # CHECK-NEXT: 1 4 0.50 sqdecd z0.d, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqdecd z0.d, pow2 @@ -4369,10 +4369,10 @@ # CHECK-NEXT: 1 2 1.00 sqdech x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdech x0, pow2 # CHECK-NEXT: 1 2 1.00 sqdech x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqdech x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqdech x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqdech x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqdech x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdech x0, w0 +# CHECK-NEXT: 1 2 1.00 sqdech x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdech x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqdech x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqdech z0.h # CHECK-NEXT: 1 4 0.50 sqdech z0.h, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqdech z0.h, pow2 @@ -4381,10 +4381,10 @@ # CHECK-NEXT: 2 6 1.50 sqdecp x0, p0.d # CHECK-NEXT: 2 6 1.50 sqdecp x0, p0.h # CHECK-NEXT: 2 6 1.50 sqdecp x0, p0.s -# CHECK-NEXT: 2 6 1.50 U sqdecp xzr, p15.b, wzr -# CHECK-NEXT: 2 6 1.50 U sqdecp xzr, p15.d, wzr -# CHECK-NEXT: 2 6 1.50 U sqdecp xzr, p15.h, wzr -# CHECK-NEXT: 2 6 1.50 U sqdecp xzr, p15.s, wzr +# CHECK-NEXT: 2 6 1.50 sqdecp xzr, p15.b, wzr +# CHECK-NEXT: 2 6 1.50 sqdecp xzr, p15.d, wzr +# CHECK-NEXT: 2 6 1.50 sqdecp xzr, p15.h, wzr +# CHECK-NEXT: 2 6 1.50 sqdecp xzr, p15.s, wzr # CHECK-NEXT: 1 12 1.00 sqdecp z0.d, p0.d # CHECK-NEXT: 1 12 1.00 sqdecp z0.h, p0.h # CHECK-NEXT: 1 12 1.00 sqdecp z0.s, p0.s @@ -4393,10 +4393,10 @@ # CHECK-NEXT: 1 2 1.00 sqdecw x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecw x0, pow2 # CHECK-NEXT: 1 2 1.00 sqdecw x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqdecw x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqdecw x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqdecw x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqdecw x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecw x0, w0 +# CHECK-NEXT: 1 2 1.00 sqdecw x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqdecw x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqdecw x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqdecw z0.s # CHECK-NEXT: 1 4 0.50 sqdecw z0.s, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqdecw z0.s, pow2 @@ -4406,19 +4406,19 @@ # CHECK-NEXT: 1 2 1.00 sqincb x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqincb x0, pow2 # CHECK-NEXT: 1 2 1.00 sqincb x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqincb x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqincb x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqincb x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqincb x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincb x0, w0 +# CHECK-NEXT: 1 2 1.00 sqincb x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincb x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqincb x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqincd x0 # CHECK-NEXT: 1 2 1.00 sqincd x0, #14 # CHECK-NEXT: 1 2 1.00 sqincd x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqincd x0, pow2 # CHECK-NEXT: 1 2 1.00 sqincd x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqincd x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqincd x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqincd x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqincd x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincd x0, w0 +# CHECK-NEXT: 1 2 1.00 sqincd x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincd x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqincd x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqincd z0.d # CHECK-NEXT: 1 4 0.50 sqincd z0.d, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqincd z0.d, pow2 @@ -4428,10 +4428,10 @@ # CHECK-NEXT: 1 2 1.00 sqinch x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqinch x0, pow2 # CHECK-NEXT: 1 2 1.00 sqinch x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqinch x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqinch x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqinch x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqinch x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqinch x0, w0 +# CHECK-NEXT: 1 2 1.00 sqinch x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqinch x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqinch x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqinch z0.h # CHECK-NEXT: 1 4 0.50 sqinch z0.h, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqinch z0.h, pow2 @@ -4440,10 +4440,10 @@ # CHECK-NEXT: 2 6 1.50 sqincp x0, p0.d # CHECK-NEXT: 2 6 1.50 sqincp x0, p0.h # CHECK-NEXT: 2 6 1.50 sqincp x0, p0.s -# CHECK-NEXT: 2 6 1.50 U sqincp xzr, p15.b, wzr -# CHECK-NEXT: 2 6 1.50 U sqincp xzr, p15.d, wzr -# CHECK-NEXT: 2 6 1.50 U sqincp xzr, p15.h, wzr -# CHECK-NEXT: 2 6 1.50 U sqincp xzr, p15.s, wzr +# CHECK-NEXT: 2 6 1.50 sqincp xzr, p15.b, wzr +# CHECK-NEXT: 2 6 1.50 sqincp xzr, p15.d, wzr +# CHECK-NEXT: 2 6 1.50 sqincp xzr, p15.h, wzr +# CHECK-NEXT: 2 6 1.50 sqincp xzr, p15.s, wzr # CHECK-NEXT: 1 12 1.00 sqincp z0.d, p0.d # CHECK-NEXT: 1 12 1.00 sqincp z0.h, p0.h # CHECK-NEXT: 1 12 1.00 sqincp z0.s, p0.s @@ -4452,10 +4452,10 @@ # CHECK-NEXT: 1 2 1.00 sqincw x0, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqincw x0, pow2 # CHECK-NEXT: 1 2 1.00 sqincw x0, vl1 -# CHECK-NEXT: 1 2 1.00 U sqincw x0, w0 -# CHECK-NEXT: 1 2 1.00 U sqincw x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 1.00 U sqincw x0, w0, pow2 -# CHECK-NEXT: 1 2 1.00 U sqincw x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincw x0, w0 +# CHECK-NEXT: 1 2 1.00 sqincw x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 1.00 sqincw x0, w0, pow2 +# CHECK-NEXT: 1 2 1.00 sqincw x0, w0, pow2, mul #16 # CHECK-NEXT: 1 4 0.50 sqincw z0.s # CHECK-NEXT: 1 4 0.50 sqincw z0.s, all, mul #16 # CHECK-NEXT: 1 4 0.50 sqincw z0.s, pow2 @@ -4560,66 +4560,66 @@ # CHECK-NEXT: 4 16 4.00 * st1w { z31.d }, p7, [z31.d, #124] # CHECK-NEXT: 1 11 1.00 * st1w { z31.s }, p7, [sp, #-1, mul vl] # CHECK-NEXT: 8 16 12.00 * st1w { z31.s }, p7, [z31.s, #124] -# CHECK-NEXT: 3 12 8.00 * U st2b { z0.b, z1.b }, p0, [x0, x0] -# CHECK-NEXT: 3 12 8.00 * U st2b { z0.b, z1.b }, p0, [x0] -# CHECK-NEXT: 3 12 8.00 * U st2b { z21.b, z22.b }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 3 12 8.00 * U st2b { z23.b, z24.b }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 3 12 8.00 * U st2b { z5.b, z6.b }, p3, [x17, x16] -# CHECK-NEXT: 2 11 2.00 * U st2d { z0.d, z1.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 3 12 2.00 * U st2d { z0.d, z1.d }, p0, [x0] -# CHECK-NEXT: 3 12 2.00 * U st2d { z21.d, z22.d }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 3 12 2.00 * U st2d { z23.d, z24.d }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 2 11 2.00 * U st2d { z5.d, z6.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 3 12 8.00 * U st2h { z0.h, z1.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 3 12 8.00 * U st2h { z0.h, z1.h }, p0, [x0] -# CHECK-NEXT: 3 12 8.00 * U st2h { z21.h, z22.h }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 3 12 8.00 * U st2h { z23.h, z24.h }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 3 12 8.00 * U st2h { z5.h, z6.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 2 11 2.00 * U st2w { z0.s, z1.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 3 12 2.00 * U st2w { z0.s, z1.s }, p0, [x0] -# CHECK-NEXT: 3 12 2.00 * U st2w { z21.s, z22.s }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 3 12 2.00 * U st2w { z23.s, z24.s }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 2 11 2.00 * U st2w { z5.s, z6.s }, p3, [x17, x16, lsl #2] -# CHECK-NEXT: 4 15 12.00 * U st3b { z0.b - z2.b }, p0, [x0, x0] -# CHECK-NEXT: 4 15 12.00 * U st3b { z0.b - z2.b }, p0, [x0] -# CHECK-NEXT: 4 15 12.00 * U st3b { z21.b - z23.b }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 4 15 12.00 * U st3b { z23.b - z25.b }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 4 15 12.00 * U st3b { z5.b - z7.b }, p3, [x17, x16] -# CHECK-NEXT: 3 11 3.00 * U st3d { z0.d - z2.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 4 12 3.00 * U st3d { z0.d - z2.d }, p0, [x0] -# CHECK-NEXT: 4 12 3.00 * U st3d { z21.d - z23.d }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 4 12 3.00 * U st3d { z23.d - z25.d }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 3 11 3.00 * U st3d { z5.d - z7.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 4 15 12.00 * U st3h { z0.h - z2.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 4 15 12.00 * U st3h { z0.h - z2.h }, p0, [x0] -# CHECK-NEXT: 4 15 12.00 * U st3h { z21.h - z23.h }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 4 15 12.00 * U st3h { z23.h - z25.h }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 4 15 12.00 * U st3h { z5.h - z7.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 3 11 3.00 * U st3w { z0.s - z2.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 4 12 3.00 * U st3w { z0.s - z2.s }, p0, [x0] -# CHECK-NEXT: 4 12 3.00 * U st3w { z21.s - z23.s }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 4 12 3.00 * U st3w { z23.s - z25.s }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 3 11 3.00 * U st3w { z5.s - z7.s }, p3, [x17, x16, lsl #2] -# CHECK-NEXT: 5 15 16.00 * U st4b { z0.b - z3.b }, p0, [x0, x0] -# CHECK-NEXT: 5 15 16.00 * U st4b { z0.b - z3.b }, p0, [x0] -# CHECK-NEXT: 5 15 16.00 * U st4b { z21.b - z24.b }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 5 15 16.00 * U st4b { z23.b - z26.b }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 5 15 16.00 * U st4b { z5.b - z8.b }, p3, [x17, x16] -# CHECK-NEXT: 4 11 4.00 * U st4d { z0.d - z3.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 5 12 4.00 * U st4d { z0.d - z3.d }, p0, [x0] -# CHECK-NEXT: 5 12 4.00 * U st4d { z21.d - z24.d }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 5 12 4.00 * U st4d { z23.d - z26.d }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 4 11 4.00 * U st4d { z5.d - z8.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 5 15 16.00 * U st4h { z0.h - z3.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 5 15 16.00 * U st4h { z0.h - z3.h }, p0, [x0] -# CHECK-NEXT: 5 15 16.00 * U st4h { z21.h - z24.h }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 5 15 16.00 * U st4h { z23.h - z26.h }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 5 15 16.00 * U st4h { z5.h - z8.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 4 11 4.00 * U st4w { z0.s - z3.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 5 12 4.00 * U st4w { z0.s - z3.s }, p0, [x0] -# CHECK-NEXT: 5 12 4.00 * U st4w { z21.s - z24.s }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 5 12 4.00 * U st4w { z23.s - z26.s }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 4 11 4.00 * U st4w { z5.s - z8.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 3 12 8.00 * st2b { z0.b, z1.b }, p0, [x0, x0] +# CHECK-NEXT: 3 12 8.00 * st2b { z0.b, z1.b }, p0, [x0] +# CHECK-NEXT: 3 12 8.00 * st2b { z21.b, z22.b }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 3 12 8.00 * st2b { z23.b, z24.b }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 3 12 8.00 * st2b { z5.b, z6.b }, p3, [x17, x16] +# CHECK-NEXT: 2 11 2.00 * st2d { z0.d, z1.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 3 12 2.00 * st2d { z0.d, z1.d }, p0, [x0] +# CHECK-NEXT: 3 12 2.00 * st2d { z21.d, z22.d }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 3 12 2.00 * st2d { z23.d, z24.d }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 2 11 2.00 * st2d { z5.d, z6.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 3 12 8.00 * st2h { z0.h, z1.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 3 12 8.00 * st2h { z0.h, z1.h }, p0, [x0] +# CHECK-NEXT: 3 12 8.00 * st2h { z21.h, z22.h }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 3 12 8.00 * st2h { z23.h, z24.h }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 3 12 8.00 * st2h { z5.h, z6.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 2 11 2.00 * st2w { z0.s, z1.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 3 12 2.00 * st2w { z0.s, z1.s }, p0, [x0] +# CHECK-NEXT: 3 12 2.00 * st2w { z21.s, z22.s }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 3 12 2.00 * st2w { z23.s, z24.s }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 2 11 2.00 * st2w { z5.s, z6.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 4 15 12.00 * st3b { z0.b - z2.b }, p0, [x0, x0] +# CHECK-NEXT: 4 15 12.00 * st3b { z0.b - z2.b }, p0, [x0] +# CHECK-NEXT: 4 15 12.00 * st3b { z21.b - z23.b }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 4 15 12.00 * st3b { z23.b - z25.b }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 4 15 12.00 * st3b { z5.b - z7.b }, p3, [x17, x16] +# CHECK-NEXT: 3 11 3.00 * st3d { z0.d - z2.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 4 12 3.00 * st3d { z0.d - z2.d }, p0, [x0] +# CHECK-NEXT: 4 12 3.00 * st3d { z21.d - z23.d }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 4 12 3.00 * st3d { z23.d - z25.d }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 3 11 3.00 * st3d { z5.d - z7.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 4 15 12.00 * st3h { z0.h - z2.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 4 15 12.00 * st3h { z0.h - z2.h }, p0, [x0] +# CHECK-NEXT: 4 15 12.00 * st3h { z21.h - z23.h }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 4 15 12.00 * st3h { z23.h - z25.h }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 4 15 12.00 * st3h { z5.h - z7.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 3 11 3.00 * st3w { z0.s - z2.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 4 12 3.00 * st3w { z0.s - z2.s }, p0, [x0] +# CHECK-NEXT: 4 12 3.00 * st3w { z21.s - z23.s }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 4 12 3.00 * st3w { z23.s - z25.s }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 3 11 3.00 * st3w { z5.s - z7.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 5 15 16.00 * st4b { z0.b - z3.b }, p0, [x0, x0] +# CHECK-NEXT: 5 15 16.00 * st4b { z0.b - z3.b }, p0, [x0] +# CHECK-NEXT: 5 15 16.00 * st4b { z21.b - z24.b }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 5 15 16.00 * st4b { z23.b - z26.b }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 5 15 16.00 * st4b { z5.b - z8.b }, p3, [x17, x16] +# CHECK-NEXT: 4 11 4.00 * st4d { z0.d - z3.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 5 12 4.00 * st4d { z0.d - z3.d }, p0, [x0] +# CHECK-NEXT: 5 12 4.00 * st4d { z21.d - z24.d }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 5 12 4.00 * st4d { z23.d - z26.d }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 4 11 4.00 * st4d { z5.d - z8.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 5 15 16.00 * st4h { z0.h - z3.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 5 15 16.00 * st4h { z0.h - z3.h }, p0, [x0] +# CHECK-NEXT: 5 15 16.00 * st4h { z21.h - z24.h }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 5 15 16.00 * st4h { z23.h - z26.h }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 5 15 16.00 * st4h { z5.h - z8.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 4 11 4.00 * st4w { z0.s - z3.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 5 12 4.00 * st4w { z0.s - z3.s }, p0, [x0] +# CHECK-NEXT: 5 12 4.00 * st4w { z21.s - z24.s }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 5 12 4.00 * st4w { z23.s - z26.s }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 4 11 4.00 * st4w { z5.s - z8.s }, p3, [x17, x16, lsl #2] # CHECK-NEXT: 1 11 1.00 * stnt1b { z0.b }, p0, [x0, x0] # CHECK-NEXT: 1 11 1.00 * stnt1b { z0.b }, p0, [x0] # CHECK-NEXT: 1 11 1.00 * stnt1b { z21.b }, p5, [x10, #7, mul vl] @@ -4639,9 +4639,9 @@ # CHECK-NEXT: 1 11 1.00 * str p0, [x0] # CHECK-NEXT: 1 11 1.00 * str p15, [sp, #-256, mul vl] # CHECK-NEXT: 1 11 1.00 * str p5, [x10, #255, mul vl] -# CHECK-NEXT: 1 11 1.00 * U str z0, [x0] -# CHECK-NEXT: 1 11 1.00 * U str z21, [x10, #-256, mul vl] -# CHECK-NEXT: 1 11 1.00 * U str z31, [sp, #255, mul vl] +# CHECK-NEXT: 1 11 1.00 * str z0, [x0] +# CHECK-NEXT: 1 11 1.00 * str z21, [x10, #-256, mul vl] +# CHECK-NEXT: 1 11 1.00 * str z31, [sp, #255, mul vl] # CHECK-NEXT: 1 4 0.50 sub z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 4 1.00 sub z0.b, z0.b, #0 # CHECK-NEXT: 1 4 0.50 sub z0.b, z0.b, z0.b diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s @@ -3486,10 +3486,10 @@ # CHECK-NEXT: 1 2 0.50 addp z0.h, p0/m, z0.h, z1.h # CHECK-NEXT: 1 2 0.50 addp z29.s, p7/m, z29.s, z30.s # CHECK-NEXT: 1 2 0.50 addp z31.d, p7/m, z31.d, z30.d -# CHECK-NEXT: 1 2 0.50 U addpl sp, sp, #31 -# CHECK-NEXT: 1 2 0.50 U addpl x0, x0, #-32 -# CHECK-NEXT: 1 2 0.50 U addpl x21, x21, #0 -# CHECK-NEXT: 1 2 0.50 U addpl x23, x8, #-1 +# CHECK-NEXT: 1 2 0.50 addpl sp, sp, #31 +# CHECK-NEXT: 1 2 0.50 addpl x0, x0, #-32 +# CHECK-NEXT: 1 2 0.50 addpl x21, x21, #0 +# CHECK-NEXT: 1 2 0.50 addpl x23, x8, #-1 # CHECK-NEXT: 1 2 0.50 addvl sp, sp, #31 # CHECK-NEXT: 1 2 0.50 addvl x0, x0, #-32 # CHECK-NEXT: 1 2 0.50 addvl x21, x21, #0 @@ -3531,7 +3531,7 @@ # CHECK-NEXT: 1 2 0.50 and z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 2 0.50 and z5.b, z5.b, #0x6 # CHECK-NEXT: 1 2 0.50 and z5.b, z5.b, #0xf9 -# CHECK-NEXT: 2 2 1.00 U ands p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 2 2 1.00 ands p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 2 6 1.00 andv b0, p7, z31.b # CHECK-NEXT: 2 6 1.00 andv d0, p7, z31.d # CHECK-NEXT: 2 6 1.00 andv h0, p7, z31.h @@ -3570,10 +3570,10 @@ # CHECK-NEXT: 1 4 1.00 asrd z31.d, p0/m, z31.d, #64 # CHECK-NEXT: 1 4 1.00 asrd z31.h, p0/m, z31.h, #16 # CHECK-NEXT: 1 4 1.00 asrd z31.s, p0/m, z31.s, #32 -# CHECK-NEXT: 1 2 1.00 U asrr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 2 1.00 U asrr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 2 1.00 U asrr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 2 1.00 U asrr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 2 1.00 asrr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 2 1.00 asrr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 2 1.00 asrr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 2 1.00 asrr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 2 1.00 bcax z29.d, z29.d, z30.d, z31.d # CHECK-NEXT: 2 6 2.00 bdep z0.b, z1.b, z31.b # CHECK-NEXT: 2 6 2.00 bdep z0.d, z1.d, z31.d @@ -3583,8 +3583,8 @@ # CHECK-NEXT: 2 6 2.00 bext z0.d, z1.d, z31.d # CHECK-NEXT: 2 6 2.00 bext z0.h, z1.h, z31.h # CHECK-NEXT: 2 6 2.00 bext z0.s, z1.s, z31.s -# CHECK-NEXT: 1 3 1.00 U bfcvt z0.h, p0/m, z1.s -# CHECK-NEXT: 1 3 1.00 U bfcvtnt z0.h, p0/m, z1.s +# CHECK-NEXT: 1 3 1.00 bfcvt z0.h, p0/m, z1.s +# CHECK-NEXT: 1 3 1.00 bfcvtnt z0.h, p0/m, z1.s # CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h # CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h[0] # CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h[3] @@ -3611,26 +3611,26 @@ # CHECK-NEXT: 1 2 0.50 bic z31.d, p7/m, z31.d, z31.d # CHECK-NEXT: 1 2 0.50 bic z31.h, p7/m, z31.h, z31.h # CHECK-NEXT: 1 2 0.50 bic z31.s, p7/m, z31.s, z31.s -# CHECK-NEXT: 2 2 1.00 U bics p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 2 2 1.00 U bics p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 2 1.00 bics p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 2 2 1.00 bics p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 2 0.50 brka p0.b, p15/m, p15.b # CHECK-NEXT: 1 2 0.50 brka p0.b, p15/z, p15.b -# CHECK-NEXT: 1 3 0.50 U brkas p0.b, p15/z, p15.b +# CHECK-NEXT: 1 3 0.50 brkas p0.b, p15/z, p15.b # CHECK-NEXT: 1 2 0.50 brkb p0.b, p15/m, p15.b # CHECK-NEXT: 1 2 0.50 brkb p0.b, p15/z, p15.b -# CHECK-NEXT: 1 3 0.50 U brkbs p0.b, p15/z, p15.b +# CHECK-NEXT: 1 3 0.50 brkbs p0.b, p15/z, p15.b # CHECK-NEXT: 1 2 2.00 brkn p0.b, p15/z, p1.b, p0.b # CHECK-NEXT: 1 2 2.00 brkn p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 3 1.00 U brkns p0.b, p15/z, p1.b, p0.b -# CHECK-NEXT: 2 3 1.00 U brkns p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 3 1.00 brkns p0.b, p15/z, p1.b, p0.b +# CHECK-NEXT: 2 3 1.00 brkns p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 2 2.00 brkpa p0.b, p15/z, p1.b, p2.b # CHECK-NEXT: 1 2 2.00 brkpa p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 3 1.00 U brkpas p0.b, p15/z, p1.b, p2.b -# CHECK-NEXT: 2 3 1.00 U brkpas p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 3 1.00 brkpas p0.b, p15/z, p1.b, p2.b +# CHECK-NEXT: 2 3 1.00 brkpas p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 2 2.00 brkpb p0.b, p15/z, p1.b, p2.b # CHECK-NEXT: 1 2 2.00 brkpb p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 3 1.00 U brkpbs p0.b, p15/z, p1.b, p2.b -# CHECK-NEXT: 2 3 1.00 U brkpbs p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 3 1.00 brkpbs p0.b, p15/z, p1.b, p2.b +# CHECK-NEXT: 2 3 1.00 brkpbs p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 2 0.50 bsl z0.d, z0.d, z1.d, z2.d # CHECK-NEXT: 1 2 0.50 bsl1n z0.d, z0.d, z1.d, z2.d # CHECK-NEXT: 1 2 0.50 bsl2n z0.d, z0.d, z1.d, z2.d @@ -3652,7 +3652,7 @@ # CHECK-NEXT: 1 4 1.00 cdot z29.d, z30.h, z0.h[0], #180 # CHECK-NEXT: 1 4 1.00 cdot z31.d, z30.h, z7.h[1], #270 # CHECK-NEXT: 1 4 1.00 cdot z5.d, z6.h, z3.h[0], #90 -# CHECK-NEXT: 1 3 1.00 U clasta b0, p7, b0, z31.b +# CHECK-NEXT: 1 3 1.00 clasta b0, p7, b0, z31.b # CHECK-NEXT: 1 3 1.00 clasta d0, p7, d0, z31.d # CHECK-NEXT: 1 3 1.00 clasta h0, p7, h0, z31.h # CHECK-NEXT: 1 3 1.00 clasta s0, p7, s0, z31.s @@ -3664,7 +3664,7 @@ # CHECK-NEXT: 1 3 1.00 clasta z0.d, p7, z0.d, z31.d # CHECK-NEXT: 1 3 1.00 clasta z0.h, p7, z0.h, z31.h # CHECK-NEXT: 1 3 1.00 clasta z0.s, p7, z0.s, z31.s -# CHECK-NEXT: 1 3 1.00 U clastb b0, p7, b0, z31.b +# CHECK-NEXT: 1 3 1.00 clastb b0, p7, b0, z31.b # CHECK-NEXT: 1 3 1.00 clastb d0, p7, d0, z31.d # CHECK-NEXT: 1 3 1.00 clastb h0, p7, h0, z31.h # CHECK-NEXT: 1 3 1.00 clastb s0, p7, s0, z31.s @@ -3884,14 +3884,14 @@ # CHECK-NEXT: 1 2 0.50 cntw x0, pow2 # CHECK-NEXT: 1 3 1.00 compact z31.d, p7, z31.d # CHECK-NEXT: 1 3 1.00 compact z31.s, p7, z31.s -# CHECK-NEXT: 1 1 0.50 U ctermeq w30, wzr -# CHECK-NEXT: 1 1 0.50 U ctermeq wzr, w30 -# CHECK-NEXT: 1 1 0.50 U ctermeq x30, xzr -# CHECK-NEXT: 1 1 0.50 U ctermeq xzr, x30 -# CHECK-NEXT: 1 1 0.50 U ctermne w30, wzr -# CHECK-NEXT: 1 1 0.50 U ctermne wzr, w30 -# CHECK-NEXT: 1 1 0.50 U ctermne x30, xzr -# CHECK-NEXT: 1 1 0.50 U ctermne xzr, x30 +# CHECK-NEXT: 1 1 0.50 ctermeq w30, wzr +# CHECK-NEXT: 1 1 0.50 ctermeq wzr, w30 +# CHECK-NEXT: 1 1 0.50 ctermeq x30, xzr +# CHECK-NEXT: 1 1 0.50 ctermeq xzr, x30 +# CHECK-NEXT: 1 1 0.50 ctermne w30, wzr +# CHECK-NEXT: 1 1 0.50 ctermne wzr, w30 +# CHECK-NEXT: 1 1 0.50 ctermne x30, xzr +# CHECK-NEXT: 1 1 0.50 ctermne xzr, x30 # CHECK-NEXT: 1 2 0.50 decb x0 # CHECK-NEXT: 1 2 0.50 decb x0, #14 # CHECK-NEXT: 1 2 0.50 decb x0, all, mul #16 @@ -3915,9 +3915,9 @@ # CHECK-NEXT: 1 2 0.50 decp xzr, p15.d # CHECK-NEXT: 1 2 0.50 decp xzr, p15.h # CHECK-NEXT: 1 2 0.50 decp xzr, p15.s -# CHECK-NEXT: 3 7 1.00 U decp z31.d, p15.d -# CHECK-NEXT: 3 7 1.00 U decp z31.h, p15.h -# CHECK-NEXT: 3 7 1.00 U decp z31.s, p15.s +# CHECK-NEXT: 3 7 1.00 decp z31.d, p15.d +# CHECK-NEXT: 3 7 1.00 decp z31.h, p15.h +# CHECK-NEXT: 3 7 1.00 decp z31.s, p15.s # CHECK-NEXT: 1 2 0.50 decw x0 # CHECK-NEXT: 1 2 0.50 decw x0, #14 # CHECK-NEXT: 1 2 0.50 decw x0, all, mul #16 @@ -3947,7 +3947,7 @@ # CHECK-NEXT: 1 2 0.50 eorbt z0.d, z1.d, z31.d # CHECK-NEXT: 1 2 0.50 eorbt z0.h, z1.h, z31.h # CHECK-NEXT: 1 2 0.50 eorbt z0.s, z1.s, z31.s -# CHECK-NEXT: 2 2 1.00 U eors p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 2 2 1.00 eors p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 1 2 0.50 eortb z0.b, z1.b, z31.b # CHECK-NEXT: 1 2 0.50 eortb z0.d, z1.d, z31.d # CHECK-NEXT: 1 2 0.50 eortb z0.h, z1.h, z31.h @@ -3956,10 +3956,10 @@ # CHECK-NEXT: 2 6 1.00 eorv d0, p7, z31.d # CHECK-NEXT: 2 6 1.00 eorv h0, p7, z31.h # CHECK-NEXT: 2 6 1.00 eorv s0, p7, z31.s -# CHECK-NEXT: 1 2 0.50 U ext z0.b, { z1.b, z2.b }, #0 +# CHECK-NEXT: 1 2 0.50 ext z0.b, { z1.b, z2.b }, #0 # CHECK-NEXT: 1 2 0.50 ext z31.b, z31.b, z0.b, #0 # CHECK-NEXT: 1 2 0.50 ext z31.b, z31.b, z0.b, #255 -# CHECK-NEXT: 1 2 0.50 U ext z31.b, { z30.b, z31.b }, #255 +# CHECK-NEXT: 1 2 0.50 ext z31.b, { z30.b, z31.b }, #255 # CHECK-NEXT: 1 2 0.50 fabd z0.d, p7/m, z0.d, z31.d # CHECK-NEXT: 1 2 0.50 fabd z0.h, p7/m, z0.h, z31.h # CHECK-NEXT: 1 2 0.50 fabd z0.s, p7/m, z0.s, z31.s @@ -4189,12 +4189,12 @@ # CHECK-NEXT: 1 4 0.50 fmlslt z30.s, z31.h, z7.h[7] # CHECK-NEXT: 1 2 0.50 fmov z0.d, #-10.00000000 # CHECK-NEXT: 1 2 0.50 fmov z0.d, #0.12500000 -# CHECK-NEXT: 1 2 0.50 U fmov z0.d, p0/m, #-10.00000000 -# CHECK-NEXT: 1 2 0.50 U fmov z0.d, p0/m, #0.12500000 +# CHECK-NEXT: 1 2 0.50 fmov z0.d, p0/m, #-10.00000000 +# CHECK-NEXT: 1 2 0.50 fmov z0.d, p0/m, #0.12500000 # CHECK-NEXT: 1 2 0.50 fmov z0.h, #-0.12500000 -# CHECK-NEXT: 1 2 0.50 U fmov z0.h, p0/m, #-0.12500000 +# CHECK-NEXT: 1 2 0.50 fmov z0.h, p0/m, #-0.12500000 # CHECK-NEXT: 1 2 0.50 fmov z0.s, #-0.12500000 -# CHECK-NEXT: 1 2 0.50 U fmov z0.s, p0/m, #-0.12500000 +# CHECK-NEXT: 1 2 0.50 fmov z0.s, p0/m, #-0.12500000 # CHECK-NEXT: 1 4 0.50 fmsb z0.d, p7/m, z1.d, z31.d # CHECK-NEXT: 1 4 0.50 fmsb z0.h, p7/m, z1.h, z31.h # CHECK-NEXT: 1 4 0.50 fmsb z0.s, p7/m, z1.s, z31.s @@ -4336,9 +4336,9 @@ # CHECK-NEXT: 1 2 0.50 incp xzr, p15.d # CHECK-NEXT: 1 2 0.50 incp xzr, p15.h # CHECK-NEXT: 1 2 0.50 incp xzr, p15.s -# CHECK-NEXT: 3 7 1.00 U incp z31.d, p15.d -# CHECK-NEXT: 3 7 1.00 U incp z31.h, p15.h -# CHECK-NEXT: 3 7 1.00 U incp z31.s, p15.s +# CHECK-NEXT: 3 7 1.00 incp z31.d, p15.d +# CHECK-NEXT: 3 7 1.00 incp z31.h, p15.h +# CHECK-NEXT: 3 7 1.00 incp z31.s, p15.s # CHECK-NEXT: 1 2 0.50 incw x0 # CHECK-NEXT: 1 2 0.50 incw x0, #14 # CHECK-NEXT: 1 2 0.50 incw x0, all, mul #16 @@ -4390,7 +4390,7 @@ # CHECK-NEXT: 2 5 1.00 insr z31.h, wzr # CHECK-NEXT: 1 3 1.00 insr z31.s, s31 # CHECK-NEXT: 2 5 1.00 insr z31.s, wzr -# CHECK-NEXT: 1 3 1.00 U lasta b0, p7, z31.b +# CHECK-NEXT: 1 3 1.00 lasta b0, p7, z31.b # CHECK-NEXT: 1 3 1.00 lasta d0, p7, z31.d # CHECK-NEXT: 1 3 1.00 lasta h0, p7, z31.h # CHECK-NEXT: 1 3 1.00 lasta s0, p7, z31.s @@ -4398,7 +4398,7 @@ # CHECK-NEXT: 2 5 1.00 lasta w0, p7, z31.h # CHECK-NEXT: 2 5 1.00 lasta w0, p7, z31.s # CHECK-NEXT: 2 5 1.00 lasta x0, p7, z31.d -# CHECK-NEXT: 1 3 1.00 U lastb b0, p7, z31.b +# CHECK-NEXT: 1 3 1.00 lastb b0, p7, z31.b # CHECK-NEXT: 1 3 1.00 lastb d0, p7, z31.d # CHECK-NEXT: 1 3 1.00 lastb h0, p7, z31.h # CHECK-NEXT: 1 3 1.00 lastb s0, p7, z31.s @@ -4408,68 +4408,68 @@ # CHECK-NEXT: 2 5 1.00 lastb x0, p7, z31.d # CHECK-NEXT: 1 6 0.50 * ld1b { z0.b }, p0/z, [sp, x0] # CHECK-NEXT: 1 6 0.50 * ld1b { z0.b }, p0/z, [x0, x0] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z0.b }, p0/z, [x0] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1b { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z0.h }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1b { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 2 9 0.50 * U ld1b { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z0.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1b { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z21.b }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1b { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1b { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1b { z0.b }, p0/z, [x0] +# CHECK-NEXT: 1 6 0.33 * ld1b { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1b { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 6 0.33 * ld1b { z0.h }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1b { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 2 9 0.50 * ld1b { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1b { z0.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1b { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 6 0.33 * ld1b { z21.b }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1b { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1b { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1b { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1b { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1b { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 6 0.50 * ld1b { z21.s }, p5/z, [x10, x21] # CHECK-NEXT: 1 6 0.50 * ld1b { z23.d }, p3/z, [x13, x8] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z31.b }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1b { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1b { z31.d }, p7/z, [z31.d, #31] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1b { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld1b { z31.s }, p7/z, [z31.s, #31] +# CHECK-NEXT: 1 6 0.33 * ld1b { z31.b }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1b { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1b { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1b { z31.d }, p7/z, [z31.d, #31] +# CHECK-NEXT: 1 6 0.33 * ld1b { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1b { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld1b { z31.s }, p7/z, [z31.s, #31] # CHECK-NEXT: 1 6 0.50 * ld1b { z5.h }, p3/z, [x17, x16] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z0.d }, p0/z, [x0, z0.d, sxtw #3] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z0.d }, p0/z, [x0, z0.d, uxtw #3] -# CHECK-NEXT: 1 6 0.33 * U ld1d { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 6 0.33 * U ld1d { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 4 9 1.00 * ld1d { z0.d }, p0/z, [x0, z0.d, sxtw #3] +# CHECK-NEXT: 4 9 1.00 * ld1d { z0.d }, p0/z, [x0, z0.d, uxtw #3] +# CHECK-NEXT: 1 6 0.33 * ld1d { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1d { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 6 0.33 * ld1d { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1d { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1d { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 6 0.50 * ld1d { z23.d }, p3/z, [sp, x8, lsl #3] # CHECK-NEXT: 1 6 0.50 * ld1d { z23.d }, p3/z, [x13, x8, lsl #3] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z23.d }, p3/z, [x13, z8.d, lsl #3] -# CHECK-NEXT: 1 6 0.33 * U ld1d { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1d { z31.d }, p7/z, [z31.d, #248] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z0.d }, p0/z, [x0, z0.d, sxtw #1] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z0.d }, p0/z, [x0, z0.d, uxtw #1] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z0.h }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1h { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 2 9 0.50 * U ld1h { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z0.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1h { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1d { z23.d }, p3/z, [x13, z8.d, lsl #3] +# CHECK-NEXT: 1 6 0.33 * ld1d { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1d { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1d { z31.d }, p7/z, [z31.d, #248] +# CHECK-NEXT: 4 9 1.00 * ld1h { z0.d }, p0/z, [x0, z0.d, sxtw #1] +# CHECK-NEXT: 4 9 1.00 * ld1h { z0.d }, p0/z, [x0, z0.d, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ld1h { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1h { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 6 0.33 * ld1h { z0.h }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1h { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 2 9 0.50 * ld1h { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1h { z0.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1h { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 6 0.33 * ld1h { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1h { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1h { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1h { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1h { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 6 0.50 * ld1h { z21.s }, p5/z, [x10, x21, lsl #1] # CHECK-NEXT: 1 6 0.50 * ld1h { z23.d }, p3/z, [x13, x8, lsl #1] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z23.d }, p3/z, [x13, z8.d, lsl #1] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1h { z31.d }, p7/z, [z31.d, #62] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1h { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 10 1.00 * U ld1h { z31.s }, p7/z, [sp, z31.s, sxtw #1] -# CHECK-NEXT: 4 10 1.00 * U ld1h { z31.s }, p7/z, [sp, z31.s, uxtw #1] -# CHECK-NEXT: 2 9 0.50 * U ld1h { z31.s }, p7/z, [z31.s, #62] +# CHECK-NEXT: 4 9 1.00 * ld1h { z23.d }, p3/z, [x13, z8.d, lsl #1] +# CHECK-NEXT: 1 6 0.33 * ld1h { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1h { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1h { z31.d }, p7/z, [z31.d, #62] +# CHECK-NEXT: 1 6 0.33 * ld1h { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1h { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 10 1.00 * ld1h { z31.s }, p7/z, [sp, z31.s, sxtw #1] +# CHECK-NEXT: 4 10 1.00 * ld1h { z31.s }, p7/z, [sp, z31.s, uxtw #1] +# CHECK-NEXT: 2 9 0.50 * ld1h { z31.s }, p7/z, [z31.s, #62] # CHECK-NEXT: 1 6 0.50 * ld1h { z5.h }, p3/z, [sp, x16, lsl #1] # CHECK-NEXT: 1 6 0.50 * ld1h { z5.h }, p3/z, [x17, x16, lsl #1] # CHECK-NEXT: 1 6 0.33 * ld1rb { z0.b }, p0/z, [x0] @@ -4524,146 +4524,146 @@ # CHECK-NEXT: 1 6 0.33 * ld1rw { z0.s }, p0/z, [x0] # CHECK-NEXT: 1 6 0.33 * ld1rw { z31.d }, p7/z, [sp, #252] # CHECK-NEXT: 1 6 0.33 * ld1rw { z31.s }, p7/z, [sp, #252] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1sb { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1sb { z0.d }, p0/z, [z0.d] # CHECK-NEXT: 1 6 0.50 * ld1sb { z0.h }, p0/z, [sp, x0] # CHECK-NEXT: 1 6 0.50 * ld1sb { z0.h }, p0/z, [x0, x0] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z0.h }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1sb { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z0.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1sb { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sb { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1sb { z21.d }, p5/z, [x10, z21.d, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z21.h }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z0.h }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1sb { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z0.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1sb { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sb { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1sb { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z21.h }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 6 0.50 * ld1sb { z21.s }, p5/z, [x10, x21] # CHECK-NEXT: 1 6 0.50 * ld1sb { z23.d }, p3/z, [x13, x8] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sb { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1sb { z31.d }, p7/z, [z31.d, #31] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z31.h }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ld1sb { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld1sb { z31.s }, p7/z, [z31.s, #31] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z0.d }, p0/z, [x0, z0.d, sxtw #1] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z0.d }, p0/z, [x0, z0.d, uxtw #1] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 2 9 0.50 * U ld1sh { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 2 9 0.50 * U ld1sh { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z0.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1sh { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sb { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1sb { z31.d }, p7/z, [z31.d, #31] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z31.h }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1sb { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld1sb { z31.s }, p7/z, [z31.s, #31] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z0.d }, p0/z, [x0, z0.d, sxtw #1] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z0.d }, p0/z, [x0, z0.d, uxtw #1] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 2 9 0.50 * ld1sh { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 2 9 0.50 * ld1sh { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z0.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1sh { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 6 0.50 * ld1sh { z21.s }, p5/z, [sp, x21, lsl #1] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 6 0.50 * ld1sh { z21.s }, p5/z, [x10, x21, lsl #1] # CHECK-NEXT: 1 6 0.50 * ld1sh { z23.d }, p3/z, [x13, x8, lsl #1] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z23.d }, p3/z, [x13, z8.d, lsl #1] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1sh { z31.d }, p7/z, [z31.d, #62] -# CHECK-NEXT: 1 6 0.33 * U ld1sh { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 10 1.00 * U ld1sh { z31.s }, p7/z, [sp, z31.s, sxtw #1] -# CHECK-NEXT: 4 10 1.00 * U ld1sh { z31.s }, p7/z, [sp, z31.s, uxtw #1] -# CHECK-NEXT: 2 9 0.50 * U ld1sh { z31.s }, p7/z, [z31.s, #62] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z0.d }, p0/z, [x0, z0.d, sxtw #2] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z0.d }, p0/z, [x0, z0.d, uxtw #2] -# CHECK-NEXT: 1 6 0.33 * U ld1sw { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 1 6 0.33 * U ld1sw { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z23.d }, p3/z, [x13, z8.d, lsl #1] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1sh { z31.d }, p7/z, [z31.d, #62] +# CHECK-NEXT: 1 6 0.33 * ld1sh { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 10 1.00 * ld1sh { z31.s }, p7/z, [sp, z31.s, sxtw #1] +# CHECK-NEXT: 4 10 1.00 * ld1sh { z31.s }, p7/z, [sp, z31.s, uxtw #1] +# CHECK-NEXT: 2 9 0.50 * ld1sh { z31.s }, p7/z, [z31.s, #62] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z0.d }, p0/z, [x0, z0.d, sxtw #2] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z0.d }, p0/z, [x0, z0.d, uxtw #2] +# CHECK-NEXT: 1 6 0.33 * ld1sw { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 1 6 0.33 * ld1sw { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 6 0.50 * ld1sw { z23.d }, p3/z, [sp, x8, lsl #2] # CHECK-NEXT: 1 6 0.50 * ld1sw { z23.d }, p3/z, [x13, x8, lsl #2] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z23.d }, p3/z, [x13, z8.d, lsl #2] -# CHECK-NEXT: 1 6 0.33 * U ld1sw { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1sw { z31.d }, p7/z, [z31.d, #124] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z0.d }, p0/z, [x0, z0.d, sxtw #2] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z0.d }, p0/z, [x0, z0.d, uxtw #2] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z0.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z0.d }, p0/z, [z0.d] -# CHECK-NEXT: 2 9 0.50 * U ld1w { z0.s }, p0/z, [x0, z0.s, sxtw] -# CHECK-NEXT: 2 9 0.50 * U ld1w { z0.s }, p0/z, [x0, z0.s, uxtw] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z0.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld1w { z0.s }, p0/z, [z0.s] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z21.d }, p5/z, [x10, #5, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z21.d }, p5/z, [x10, z21.d, sxtw] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z21.d }, p5/z, [x10, z21.d, uxtw] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z23.d }, p3/z, [x13, z8.d, lsl #2] +# CHECK-NEXT: 1 6 0.33 * ld1sw { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1sw { z31.d }, p7/z, [z31.d, #124] +# CHECK-NEXT: 4 9 1.00 * ld1w { z0.d }, p0/z, [x0, z0.d, sxtw #2] +# CHECK-NEXT: 4 9 1.00 * ld1w { z0.d }, p0/z, [x0, z0.d, uxtw #2] +# CHECK-NEXT: 1 6 0.33 * ld1w { z0.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld1w { z0.d }, p0/z, [z0.d] +# CHECK-NEXT: 2 9 0.50 * ld1w { z0.s }, p0/z, [x0, z0.s, sxtw] +# CHECK-NEXT: 2 9 0.50 * ld1w { z0.s }, p0/z, [x0, z0.s, uxtw] +# CHECK-NEXT: 1 6 0.33 * ld1w { z0.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld1w { z0.s }, p0/z, [z0.s] +# CHECK-NEXT: 1 6 0.33 * ld1w { z21.d }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1w { z21.d }, p5/z, [x10, z21.d, sxtw] +# CHECK-NEXT: 4 9 1.00 * ld1w { z21.d }, p5/z, [x10, z21.d, uxtw] # CHECK-NEXT: 1 6 0.50 * ld1w { z21.s }, p5/z, [sp, x21, lsl #2] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z21.s }, p5/z, [x10, #5, mul vl] +# CHECK-NEXT: 1 6 0.33 * ld1w { z21.s }, p5/z, [x10, #5, mul vl] # CHECK-NEXT: 1 6 0.50 * ld1w { z21.s }, p5/z, [x10, x21, lsl #2] # CHECK-NEXT: 1 6 0.50 * ld1w { z23.d }, p3/z, [x13, x8, lsl #2] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z23.d }, p3/z, [x13, z8.d, lsl #2] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z31.d }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z31.d }, p7/z, [sp, z31.d] -# CHECK-NEXT: 4 9 1.00 * U ld1w { z31.d }, p7/z, [z31.d, #124] -# CHECK-NEXT: 1 6 0.33 * U ld1w { z31.s }, p7/z, [sp, #-1, mul vl] -# CHECK-NEXT: 4 10 1.00 * U ld1w { z31.s }, p7/z, [sp, z31.s, sxtw #2] -# CHECK-NEXT: 4 10 1.00 * U ld1w { z31.s }, p7/z, [sp, z31.s, uxtw #2] -# CHECK-NEXT: 2 9 0.50 * U ld1w { z31.s }, p7/z, [z31.s, #124] -# CHECK-NEXT: 2 9 0.50 * U ld2b { z0.b, z1.b }, p0/z, [x0, x0] -# CHECK-NEXT: 2 8 0.50 * U ld2b { z0.b, z1.b }, p0/z, [x0] -# CHECK-NEXT: 2 8 0.50 * U ld2b { z21.b, z22.b }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 8 0.50 * U ld2b { z23.b, z24.b }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld2b { z5.b, z6.b }, p3/z, [x17, x16] -# CHECK-NEXT: 2 9 0.50 * U ld2d { z0.d, z1.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 2 8 0.50 * U ld2d { z0.d, z1.d }, p0/z, [x0] -# CHECK-NEXT: 2 8 0.50 * U ld2d { z21.d, z22.d }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 8 0.50 * U ld2d { z23.d, z24.d }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld2d { z5.d, z6.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 2 9 0.50 * U ld2h { z0.h, z1.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 2 8 0.50 * U ld2h { z0.h, z1.h }, p0/z, [x0] -# CHECK-NEXT: 2 8 0.50 * U ld2h { z21.h, z22.h }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 8 0.50 * U ld2h { z23.h, z24.h }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld2h { z5.h, z6.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 2 9 0.50 * U ld2w { z0.s, z1.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 2 8 0.50 * U ld2w { z0.s, z1.s }, p0/z, [x0] -# CHECK-NEXT: 2 8 0.50 * U ld2w { z21.s, z22.s }, p5/z, [x10, #10, mul vl] -# CHECK-NEXT: 2 8 0.50 * U ld2w { z23.s, z24.s }, p3/z, [x13, #-16, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld2w { z5.s, z6.s }, p3/z, [x17, x16, lsl #2] -# CHECK-NEXT: 3 10 0.67 * U ld3b { z0.b - z2.b }, p0/z, [x0, x0] -# CHECK-NEXT: 2 9 0.50 * U ld3b { z0.b - z2.b }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld3b { z21.b - z23.b }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld3b { z23.b - z25.b }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 3 10 0.67 * U ld3b { z5.b - z7.b }, p3/z, [x17, x16] -# CHECK-NEXT: 3 10 0.67 * U ld3d { z0.d - z2.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 2 9 0.50 * U ld3d { z0.d - z2.d }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld3d { z21.d - z23.d }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld3d { z23.d - z25.d }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 3 10 0.67 * U ld3d { z5.d - z7.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 3 10 0.67 * U ld3h { z0.h - z2.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 2 9 0.50 * U ld3h { z0.h - z2.h }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld3h { z21.h - z23.h }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld3h { z23.h - z25.h }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 3 10 0.67 * U ld3h { z5.h - z7.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 3 10 0.67 * U ld3w { z0.s - z2.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 2 9 0.50 * U ld3w { z0.s - z2.s }, p0/z, [x0] -# CHECK-NEXT: 2 9 0.50 * U ld3w { z21.s - z23.s }, p5/z, [x10, #15, mul vl] -# CHECK-NEXT: 2 9 0.50 * U ld3w { z23.s - z25.s }, p3/z, [x13, #-24, mul vl] -# CHECK-NEXT: 3 10 0.67 * U ld3w { z5.s - z7.s }, p3/z, [x17, x16, lsl #2] -# CHECK-NEXT: 6 10 1.00 * U ld4b { z0.b - z3.b }, p0/z, [x0, x0] -# CHECK-NEXT: 4 9 1.00 * U ld4b { z0.b - z3.b }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld4b { z21.b - z24.b }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld4b { z23.b - z26.b }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 6 10 1.00 * U ld4b { z5.b - z8.b }, p3/z, [x17, x16] -# CHECK-NEXT: 6 10 1.00 * U ld4d { z0.d - z3.d }, p0/z, [x0, x0, lsl #3] -# CHECK-NEXT: 4 9 1.00 * U ld4d { z0.d - z3.d }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld4d { z21.d - z24.d }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld4d { z23.d - z26.d }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 6 10 1.00 * U ld4d { z5.d - z8.d }, p3/z, [x17, x16, lsl #3] -# CHECK-NEXT: 6 10 1.00 * U ld4h { z0.h - z3.h }, p0/z, [x0, x0, lsl #1] -# CHECK-NEXT: 4 9 1.00 * U ld4h { z0.h - z3.h }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld4h { z21.h - z24.h }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld4h { z23.h - z26.h }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 6 10 1.00 * U ld4h { z5.h - z8.h }, p3/z, [x17, x16, lsl #1] -# CHECK-NEXT: 6 10 1.00 * U ld4w { z0.s - z3.s }, p0/z, [x0, x0, lsl #2] -# CHECK-NEXT: 4 9 1.00 * U ld4w { z0.s - z3.s }, p0/z, [x0] -# CHECK-NEXT: 4 9 1.00 * U ld4w { z21.s - z24.s }, p5/z, [x10, #20, mul vl] -# CHECK-NEXT: 4 9 1.00 * U ld4w { z23.s - z26.s }, p3/z, [x13, #-32, mul vl] -# CHECK-NEXT: 6 10 1.00 * U ld4w { z5.s - z8.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 4 9 1.00 * ld1w { z23.d }, p3/z, [x13, z8.d, lsl #2] +# CHECK-NEXT: 1 6 0.33 * ld1w { z31.d }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld1w { z31.d }, p7/z, [sp, z31.d] +# CHECK-NEXT: 4 9 1.00 * ld1w { z31.d }, p7/z, [z31.d, #124] +# CHECK-NEXT: 1 6 0.33 * ld1w { z31.s }, p7/z, [sp, #-1, mul vl] +# CHECK-NEXT: 4 10 1.00 * ld1w { z31.s }, p7/z, [sp, z31.s, sxtw #2] +# CHECK-NEXT: 4 10 1.00 * ld1w { z31.s }, p7/z, [sp, z31.s, uxtw #2] +# CHECK-NEXT: 2 9 0.50 * ld1w { z31.s }, p7/z, [z31.s, #124] +# CHECK-NEXT: 2 9 0.50 * ld2b { z0.b, z1.b }, p0/z, [x0, x0] +# CHECK-NEXT: 2 8 0.50 * ld2b { z0.b, z1.b }, p0/z, [x0] +# CHECK-NEXT: 2 8 0.50 * ld2b { z21.b, z22.b }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 8 0.50 * ld2b { z23.b, z24.b }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld2b { z5.b, z6.b }, p3/z, [x17, x16] +# CHECK-NEXT: 2 9 0.50 * ld2d { z0.d, z1.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 2 8 0.50 * ld2d { z0.d, z1.d }, p0/z, [x0] +# CHECK-NEXT: 2 8 0.50 * ld2d { z21.d, z22.d }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 8 0.50 * ld2d { z23.d, z24.d }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld2d { z5.d, z6.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 2 9 0.50 * ld2h { z0.h, z1.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 2 8 0.50 * ld2h { z0.h, z1.h }, p0/z, [x0] +# CHECK-NEXT: 2 8 0.50 * ld2h { z21.h, z22.h }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 8 0.50 * ld2h { z23.h, z24.h }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld2h { z5.h, z6.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 2 9 0.50 * ld2w { z0.s, z1.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 2 8 0.50 * ld2w { z0.s, z1.s }, p0/z, [x0] +# CHECK-NEXT: 2 8 0.50 * ld2w { z21.s, z22.s }, p5/z, [x10, #10, mul vl] +# CHECK-NEXT: 2 8 0.50 * ld2w { z23.s, z24.s }, p3/z, [x13, #-16, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld2w { z5.s, z6.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 3 10 0.67 * ld3b { z0.b - z2.b }, p0/z, [x0, x0] +# CHECK-NEXT: 2 9 0.50 * ld3b { z0.b - z2.b }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld3b { z21.b - z23.b }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld3b { z23.b - z25.b }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 3 10 0.67 * ld3b { z5.b - z7.b }, p3/z, [x17, x16] +# CHECK-NEXT: 3 10 0.67 * ld3d { z0.d - z2.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 2 9 0.50 * ld3d { z0.d - z2.d }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld3d { z21.d - z23.d }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld3d { z23.d - z25.d }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 3 10 0.67 * ld3d { z5.d - z7.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 3 10 0.67 * ld3h { z0.h - z2.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 2 9 0.50 * ld3h { z0.h - z2.h }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld3h { z21.h - z23.h }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld3h { z23.h - z25.h }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 3 10 0.67 * ld3h { z5.h - z7.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 3 10 0.67 * ld3w { z0.s - z2.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 2 9 0.50 * ld3w { z0.s - z2.s }, p0/z, [x0] +# CHECK-NEXT: 2 9 0.50 * ld3w { z21.s - z23.s }, p5/z, [x10, #15, mul vl] +# CHECK-NEXT: 2 9 0.50 * ld3w { z23.s - z25.s }, p3/z, [x13, #-24, mul vl] +# CHECK-NEXT: 3 10 0.67 * ld3w { z5.s - z7.s }, p3/z, [x17, x16, lsl #2] +# CHECK-NEXT: 6 10 1.00 * ld4b { z0.b - z3.b }, p0/z, [x0, x0] +# CHECK-NEXT: 4 9 1.00 * ld4b { z0.b - z3.b }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld4b { z21.b - z24.b }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld4b { z23.b - z26.b }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 6 10 1.00 * ld4b { z5.b - z8.b }, p3/z, [x17, x16] +# CHECK-NEXT: 6 10 1.00 * ld4d { z0.d - z3.d }, p0/z, [x0, x0, lsl #3] +# CHECK-NEXT: 4 9 1.00 * ld4d { z0.d - z3.d }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld4d { z21.d - z24.d }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld4d { z23.d - z26.d }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 6 10 1.00 * ld4d { z5.d - z8.d }, p3/z, [x17, x16, lsl #3] +# CHECK-NEXT: 6 10 1.00 * ld4h { z0.h - z3.h }, p0/z, [x0, x0, lsl #1] +# CHECK-NEXT: 4 9 1.00 * ld4h { z0.h - z3.h }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld4h { z21.h - z24.h }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld4h { z23.h - z26.h }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 6 10 1.00 * ld4h { z5.h - z8.h }, p3/z, [x17, x16, lsl #1] +# CHECK-NEXT: 6 10 1.00 * ld4w { z0.s - z3.s }, p0/z, [x0, x0, lsl #2] +# CHECK-NEXT: 4 9 1.00 * ld4w { z0.s - z3.s }, p0/z, [x0] +# CHECK-NEXT: 4 9 1.00 * ld4w { z21.s - z24.s }, p5/z, [x10, #20, mul vl] +# CHECK-NEXT: 4 9 1.00 * ld4w { z23.s - z26.s }, p3/z, [x13, #-32, mul vl] +# CHECK-NEXT: 6 10 1.00 * ld4w { z5.s - z8.s }, p3/z, [x17, x16, lsl #2] # CHECK-NEXT: 2 6 0.50 * U ldff1b { z0.d }, p0/z, [x0, x0] # CHECK-NEXT: 4 9 1.00 * U ldff1b { z0.d }, p0/z, [z0.d] # CHECK-NEXT: 2 6 0.50 * U ldff1b { z0.h }, p0/z, [x0, x0] @@ -4874,9 +4874,9 @@ # CHECK-NEXT: 2 6 0.50 * ldr p0, [x0] # CHECK-NEXT: 2 6 0.50 * ldr p5, [x10, #255, mul vl] # CHECK-NEXT: 2 6 0.50 * ldr p7, [x13, #-256, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ldr z0, [x0] -# CHECK-NEXT: 1 6 0.33 * U ldr z23, [x13, #255, mul vl] -# CHECK-NEXT: 1 6 0.33 * U ldr z31, [sp, #-256, mul vl] +# CHECK-NEXT: 1 6 0.33 * ldr z0, [x0] +# CHECK-NEXT: 1 6 0.33 * ldr z23, [x13, #255, mul vl] +# CHECK-NEXT: 1 6 0.33 * ldr z31, [sp, #-256, mul vl] # CHECK-NEXT: 1 2 1.00 lsl z0.b, p0/m, z0.b, #0 # CHECK-NEXT: 1 2 1.00 lsl z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 2 1.00 lsl z0.b, p0/m, z0.b, z1.d @@ -4903,10 +4903,10 @@ # CHECK-NEXT: 1 2 1.00 lsl z31.h, z31.h, #15 # CHECK-NEXT: 1 2 1.00 lsl z31.s, p0/m, z31.s, #31 # CHECK-NEXT: 1 2 1.00 lsl z31.s, z31.s, #31 -# CHECK-NEXT: 1 2 1.00 U lslr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 2 1.00 U lslr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 2 1.00 U lslr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 2 1.00 U lslr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 2 1.00 lslr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 2 1.00 lslr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 2 1.00 lslr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 2 1.00 lslr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 2 1.00 lsr z0.b, p0/m, z0.b, #1 # CHECK-NEXT: 1 2 1.00 lsr z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 2 1.00 lsr z0.b, p0/m, z0.b, z1.d @@ -4933,10 +4933,10 @@ # CHECK-NEXT: 1 2 1.00 lsr z31.h, z31.h, #16 # CHECK-NEXT: 1 2 1.00 lsr z31.s, p0/m, z31.s, #32 # CHECK-NEXT: 1 2 1.00 lsr z31.s, z31.s, #32 -# CHECK-NEXT: 1 2 1.00 U lsrr z0.b, p0/m, z0.b, z0.b -# CHECK-NEXT: 1 2 1.00 U lsrr z0.d, p0/m, z0.d, z0.d -# CHECK-NEXT: 1 2 1.00 U lsrr z0.h, p0/m, z0.h, z0.h -# CHECK-NEXT: 1 2 1.00 U lsrr z0.s, p0/m, z0.s, z0.s +# CHECK-NEXT: 1 2 1.00 lsrr z0.b, p0/m, z0.b, z0.b +# CHECK-NEXT: 1 2 1.00 lsrr z0.d, p0/m, z0.d, z0.d +# CHECK-NEXT: 1 2 1.00 lsrr z0.h, p0/m, z0.h, z0.h +# CHECK-NEXT: 1 2 1.00 lsrr z0.s, p0/m, z0.s, z0.s # CHECK-NEXT: 1 4 1.00 mad z0.b, p7/m, z1.b, z31.b # CHECK-NEXT: 2 5 2.00 mad z0.d, p7/m, z1.d, z31.d # CHECK-NEXT: 1 4 1.00 mad z0.h, p7/m, z1.h, z31.h @@ -4967,7 +4967,7 @@ # CHECK-NEXT: 1 1 1.00 mov p15.b, p15/z, p15.b # CHECK-NEXT: 1 2 0.50 mov z0.b, #127 # CHECK-NEXT: 1 2 0.50 mov z0.b, b0 -# CHECK-NEXT: 1 2 0.50 U mov z0.b, p0/m, b0 +# CHECK-NEXT: 1 2 0.50 mov z0.b, p0/m, b0 # CHECK-NEXT: 2 5 1.00 mov z0.b, p0/m, w0 # CHECK-NEXT: 1 2 0.50 mov z0.b, p0/z, #127 # CHECK-NEXT: 1 3 3.00 mov z0.b, w0 @@ -5029,14 +5029,14 @@ # CHECK-NEXT: 1 2 0.50 mov z21.s, p15/m, #-128 # CHECK-NEXT: 1 2 0.50 mov z21.s, p15/m, #-32768 # CHECK-NEXT: 1 2 0.50 mov z31.b, p15/m, z31.b -# CHECK-NEXT: 1 2 0.50 U mov z31.b, p7/m, b31 +# CHECK-NEXT: 1 2 0.50 mov z31.b, p7/m, b31 # CHECK-NEXT: 1 2 0.50 movprfx z31, z6 # CHECK-NEXT: 2 5 1.00 mov z31.b, p7/m, wsp # CHECK-NEXT: 1 3 3.00 mov z31.b, wsp # CHECK-NEXT: 1 2 0.50 mov z31.b, z31.b[63] # CHECK-NEXT: 1 2 0.50 mov z31.d, p15/m, z31.d # CHECK-NEXT: 1 2 0.50 mov z31.d, p7/m, d31 -# CHECK-NEXT: 1 2 0.50 U movprfx z31.d, p7/z, z6.d +# CHECK-NEXT: 1 2 0.50 movprfx z31.d, p7/z, z6.d # CHECK-NEXT: 2 5 1.00 mov z31.d, p7/m, sp # CHECK-NEXT: 1 3 3.00 mov z31.d, sp # CHECK-NEXT: 1 2 0.50 mov z31.d, z0.d @@ -5062,10 +5062,10 @@ # CHECK-NEXT: 1 2 0.50 mov z5.h, #-6 # CHECK-NEXT: 1 2 0.50 mov z5.q, z17.q[3] # CHECK-NEXT: 1 2 0.50 mov z5.s, #-6 -# CHECK-NEXT: 2 2 1.00 U movs p0.b, p0.b -# CHECK-NEXT: 2 2 1.00 U movs p0.b, p0/z, p0.b -# CHECK-NEXT: 2 2 1.00 U movs p15.b, p15.b -# CHECK-NEXT: 2 2 1.00 U movs p15.b, p15/z, p15.b +# CHECK-NEXT: 2 2 1.00 movs p0.b, p0.b +# CHECK-NEXT: 2 2 1.00 movs p0.b, p0/z, p0.b +# CHECK-NEXT: 2 2 1.00 movs p15.b, p15.b +# CHECK-NEXT: 2 2 1.00 movs p15.b, p15/z, p15.b # CHECK-NEXT: 1 1 0.10 U mrs x3, ID_AA64ZFR0_EL1 # CHECK-NEXT: 1 1 0.10 U mrs x3, ZCR_EL1 # CHECK-NEXT: 1 1 0.10 U mrs x3, ZCR_EL12 @@ -5100,8 +5100,8 @@ # CHECK-NEXT: 1 4 1.00 mul z31.s, z31.s, #127 # CHECK-NEXT: 1 1 1.00 nand p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 1 1.00 nand p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 2 1.00 U nands p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 2 2 1.00 U nands p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 2 1.00 nands p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 2 2 1.00 nands p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 2 0.50 nbsl z0.d, z0.d, z1.d, z2.d # CHECK-NEXT: 1 2 0.50 neg z0.b, p0/m, z0.b # CHECK-NEXT: 1 2 0.50 neg z0.d, p0/m, z0.d @@ -5117,20 +5117,20 @@ # CHECK-NEXT: 2 2 1.00 nmatch p15.h, p7/z, z30.h, z31.h # CHECK-NEXT: 1 1 1.00 nor p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 1 1.00 nor p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 2 1.00 U nors p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 2 2 1.00 U nors p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 2 1.00 nors p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 2 2 1.00 nors p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 1 1.00 not p0.b, p0/z, p0.b # CHECK-NEXT: 1 1 1.00 not p15.b, p15/z, p15.b # CHECK-NEXT: 1 2 0.50 not z31.b, p7/m, z31.b # CHECK-NEXT: 1 2 0.50 not z31.d, p7/m, z31.d # CHECK-NEXT: 1 2 0.50 not z31.h, p7/m, z31.h # CHECK-NEXT: 1 2 0.50 not z31.s, p7/m, z31.s -# CHECK-NEXT: 2 2 1.00 U nots p0.b, p0/z, p0.b -# CHECK-NEXT: 2 2 1.00 U nots p15.b, p15/z, p15.b +# CHECK-NEXT: 2 2 1.00 nots p0.b, p0/z, p0.b +# CHECK-NEXT: 2 2 1.00 nots p15.b, p15/z, p15.b # CHECK-NEXT: 1 1 1.00 orn p0.b, p0/z, p0.b, p0.b # CHECK-NEXT: 1 1 1.00 orn p15.b, p15/z, p15.b, p15.b -# CHECK-NEXT: 2 2 1.00 U orns p0.b, p0/z, p0.b, p0.b -# CHECK-NEXT: 2 2 1.00 U orns p15.b, p15/z, p15.b, p15.b +# CHECK-NEXT: 2 2 1.00 orns p0.b, p0/z, p0.b, p0.b +# CHECK-NEXT: 2 2 1.00 orns p15.b, p15/z, p15.b, p15.b # CHECK-NEXT: 1 1 1.00 orr p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 1 2 0.50 orr z0.d, z0.d, #0x6 # CHECK-NEXT: 1 2 0.50 orr z0.d, z0.d, #0xfffffffffffffff9 @@ -5145,7 +5145,7 @@ # CHECK-NEXT: 1 2 0.50 orr z31.s, p7/m, z31.s, z31.s # CHECK-NEXT: 1 2 0.50 orr z5.b, z5.b, #0x6 # CHECK-NEXT: 1 2 0.50 orr z5.b, z5.b, #0xf9 -# CHECK-NEXT: 2 2 1.00 U orrs p0.b, p0/z, p0.b, p1.b +# CHECK-NEXT: 2 2 1.00 orrs p0.b, p0/z, p0.b, p1.b # CHECK-NEXT: 2 6 1.00 orv b0, p7, z31.b # CHECK-NEXT: 2 6 1.00 orv d0, p7, z31.d # CHECK-NEXT: 2 6 1.00 orv h0, p7, z31.h @@ -5170,8 +5170,8 @@ # CHECK-NEXT: 1 4 0.33 * * U prfb #15, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfb #6, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfb #7, p0, [x0] -# CHECK-NEXT: 1 4 0.33 * * prfb #7, p3, [z13.s, #31] -# CHECK-NEXT: 1 4 0.33 * * prfb #7, p3, [z13.s] +# CHECK-NEXT: 1 4 0.33 * * U prfb #7, p3, [z13.s, #31] +# CHECK-NEXT: 1 4 0.33 * * U prfb #7, p3, [z13.s] # CHECK-NEXT: 1 4 0.33 * * U prfb pldl1keep, p0, [x0, z0.d, uxtw] # CHECK-NEXT: 1 4 0.33 * * U prfb pldl1keep, p0, [x0, z0.d] # CHECK-NEXT: 1 4 0.33 * * U prfb pldl1keep, p0, [x0, z0.s, uxtw] @@ -5197,8 +5197,8 @@ # CHECK-NEXT: 1 4 0.33 * * U prfd #15, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfd #15, p7, [z31.d, #248] # CHECK-NEXT: 1 4 0.33 * * U prfd #15, p7, [z31.d] -# CHECK-NEXT: 1 4 0.33 * * prfd #15, p7, [z31.s, #248] -# CHECK-NEXT: 1 4 0.33 * * prfd #15, p7, [z31.s] +# CHECK-NEXT: 1 4 0.33 * * U prfd #15, p7, [z31.s, #248] +# CHECK-NEXT: 1 4 0.33 * * U prfd #15, p7, [z31.s] # CHECK-NEXT: 1 4 0.33 * * U prfd #6, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfd #7, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfd pldl1keep, p0, [x0, z0.d, lsl #3] @@ -5224,8 +5224,8 @@ # CHECK-NEXT: 1 4 0.33 * * U prfh #15, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfh #15, p7, [z31.d, #62] # CHECK-NEXT: 1 4 0.33 * * U prfh #15, p7, [z31.d] -# CHECK-NEXT: 1 4 0.33 * * prfh #15, p7, [z31.s, #62] -# CHECK-NEXT: 1 4 0.33 * * prfh #15, p7, [z31.s] +# CHECK-NEXT: 1 4 0.33 * * U prfh #15, p7, [z31.s, #62] +# CHECK-NEXT: 1 4 0.33 * * U prfh #15, p7, [z31.s] # CHECK-NEXT: 1 4 0.33 * * U prfh #6, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfh #7, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfh pldl1keep, p0, [x0, z0.d, lsl #1] @@ -5251,8 +5251,8 @@ # CHECK-NEXT: 1 4 0.33 * * U prfw #15, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfw #15, p7, [z31.d, #124] # CHECK-NEXT: 1 4 0.33 * * U prfw #15, p7, [z31.d] -# CHECK-NEXT: 1 4 0.33 * * prfw #15, p7, [z31.s, #124] -# CHECK-NEXT: 1 4 0.33 * * prfw #15, p7, [z31.s] +# CHECK-NEXT: 1 4 0.33 * * U prfw #15, p7, [z31.s, #124] +# CHECK-NEXT: 1 4 0.33 * * U prfw #15, p7, [z31.s] # CHECK-NEXT: 1 4 0.33 * * U prfw #6, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfw #7, p0, [x0] # CHECK-NEXT: 1 4 0.33 * * U prfw #7, p3, [x13, z8.d, uxtw #2] @@ -5315,45 +5315,45 @@ # CHECK-NEXT: 1 2 0.50 ptrue p7.s, vl64 # CHECK-NEXT: 1 2 0.50 ptrue p7.s, vl7 # CHECK-NEXT: 1 2 0.50 ptrue p7.s, vl8 -# CHECK-NEXT: 1 3 0.50 U ptrues p0.b, pow2 -# CHECK-NEXT: 1 3 0.50 U ptrues p0.d, pow2 -# CHECK-NEXT: 1 3 0.50 U ptrues p0.h, pow2 -# CHECK-NEXT: 1 3 0.50 U ptrues p0.s, pow2 -# CHECK-NEXT: 1 3 0.50 U ptrues p15.b -# CHECK-NEXT: 1 3 0.50 U ptrues p15.d -# CHECK-NEXT: 1 3 0.50 U ptrues p15.h -# CHECK-NEXT: 1 3 0.50 U ptrues p15.s -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #14 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #15 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #16 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #17 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #18 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #19 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #20 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #21 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #22 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #23 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #24 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #25 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #26 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #27 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, #28 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, mul3 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, mul4 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl1 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl128 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl16 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl2 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl256 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl3 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl32 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl4 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl5 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl6 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl64 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl7 -# CHECK-NEXT: 1 3 0.50 U ptrues p7.s, vl8 +# CHECK-NEXT: 1 3 0.50 ptrues p0.b, pow2 +# CHECK-NEXT: 1 3 0.50 ptrues p0.d, pow2 +# CHECK-NEXT: 1 3 0.50 ptrues p0.h, pow2 +# CHECK-NEXT: 1 3 0.50 ptrues p0.s, pow2 +# CHECK-NEXT: 1 3 0.50 ptrues p15.b +# CHECK-NEXT: 1 3 0.50 ptrues p15.d +# CHECK-NEXT: 1 3 0.50 ptrues p15.h +# CHECK-NEXT: 1 3 0.50 ptrues p15.s +# CHECK-NEXT: 1 3 0.50 ptrues p7.s +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #14 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #15 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #16 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #17 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #18 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #19 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #20 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #21 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #22 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #23 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #24 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #25 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #26 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #27 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, #28 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, mul3 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, mul4 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl1 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl128 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl16 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl2 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl256 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl3 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl32 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl4 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl5 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl6 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl64 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl7 +# CHECK-NEXT: 1 3 0.50 ptrues p7.s, vl8 # CHECK-NEXT: 1 2 0.50 punpkhi p0.h, p0.b # CHECK-NEXT: 1 2 0.50 punpkhi p15.h, p15.b # CHECK-NEXT: 1 2 0.50 punpklo p0.h, p0.b @@ -5585,10 +5585,10 @@ # CHECK-NEXT: 1 4 1.00 smullt z0.s, z1.h, z7.h[7] # CHECK-NEXT: 1 4 1.00 smullt z29.s, z30.h, z31.h # CHECK-NEXT: 1 4 1.00 smullt z31.d, z31.s, z31.s -# CHECK-NEXT: 1 3 1.00 U splice z29.b, p7, { z30.b, z31.b } -# CHECK-NEXT: 1 3 1.00 U splice z29.d, p7, { z30.d, z31.d } -# CHECK-NEXT: 1 3 1.00 U splice z29.h, p7, { z30.h, z31.h } -# CHECK-NEXT: 1 3 1.00 U splice z29.s, p7, { z30.s, z31.s } +# CHECK-NEXT: 1 3 1.00 splice z29.b, p7, { z30.b, z31.b } +# CHECK-NEXT: 1 3 1.00 splice z29.d, p7, { z30.d, z31.d } +# CHECK-NEXT: 1 3 1.00 splice z29.h, p7, { z30.h, z31.h } +# CHECK-NEXT: 1 3 1.00 splice z29.s, p7, { z30.s, z31.s } # CHECK-NEXT: 1 3 1.00 splice z31.b, p7, z31.b, z31.b # CHECK-NEXT: 1 3 1.00 splice z31.d, p7, z31.d, z31.d # CHECK-NEXT: 1 3 1.00 splice z31.h, p7, z31.h, z31.h @@ -5629,19 +5629,19 @@ # CHECK-NEXT: 1 2 0.50 sqdecb x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqdecb x0, pow2 # CHECK-NEXT: 1 2 0.50 sqdecb x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqdecb x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqdecb x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqdecb x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqdecb x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecb x0, w0 +# CHECK-NEXT: 1 2 0.50 sqdecb x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecb x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqdecb x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 0.50 sqdecd x0 # CHECK-NEXT: 1 2 0.50 sqdecd x0, #14 # CHECK-NEXT: 1 2 0.50 sqdecd x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqdecd x0, pow2 # CHECK-NEXT: 1 2 0.50 sqdecd x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqdecd x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqdecd x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqdecd x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqdecd x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecd x0, w0 +# CHECK-NEXT: 1 2 0.50 sqdecd x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecd x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqdecd x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecd z0.d # CHECK-NEXT: 1 2 1.00 sqdecd z0.d, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecd z0.d, pow2 @@ -5651,10 +5651,10 @@ # CHECK-NEXT: 1 2 0.50 sqdech x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqdech x0, pow2 # CHECK-NEXT: 1 2 0.50 sqdech x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqdech x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqdech x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqdech x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqdech x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdech x0, w0 +# CHECK-NEXT: 1 2 0.50 sqdech x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdech x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqdech x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqdech z0.h # CHECK-NEXT: 1 2 1.00 sqdech z0.h, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdech z0.h, pow2 @@ -5663,10 +5663,10 @@ # CHECK-NEXT: 1 2 0.50 sqdecp x0, p0.d # CHECK-NEXT: 1 2 0.50 sqdecp x0, p0.h # CHECK-NEXT: 1 2 0.50 sqdecp x0, p0.s -# CHECK-NEXT: 1 2 0.50 U sqdecp xzr, p15.b, wzr -# CHECK-NEXT: 1 2 0.50 U sqdecp xzr, p15.d, wzr -# CHECK-NEXT: 1 2 0.50 U sqdecp xzr, p15.h, wzr -# CHECK-NEXT: 1 2 0.50 U sqdecp xzr, p15.s, wzr +# CHECK-NEXT: 1 2 0.50 sqdecp xzr, p15.b, wzr +# CHECK-NEXT: 1 2 0.50 sqdecp xzr, p15.d, wzr +# CHECK-NEXT: 1 2 0.50 sqdecp xzr, p15.h, wzr +# CHECK-NEXT: 1 2 0.50 sqdecp xzr, p15.s, wzr # CHECK-NEXT: 3 7 1.00 sqdecp z0.d, p0.d # CHECK-NEXT: 3 7 1.00 sqdecp z0.h, p0.h # CHECK-NEXT: 3 7 1.00 sqdecp z0.s, p0.s @@ -5675,10 +5675,10 @@ # CHECK-NEXT: 1 2 0.50 sqdecw x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqdecw x0, pow2 # CHECK-NEXT: 1 2 0.50 sqdecw x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqdecw x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqdecw x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqdecw x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqdecw x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecw x0, w0 +# CHECK-NEXT: 1 2 0.50 sqdecw x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqdecw x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqdecw x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecw z0.s # CHECK-NEXT: 1 2 1.00 sqdecw z0.s, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqdecw z0.s, pow2 @@ -5731,19 +5731,19 @@ # CHECK-NEXT: 1 2 0.50 sqincb x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqincb x0, pow2 # CHECK-NEXT: 1 2 0.50 sqincb x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqincb x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqincb x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqincb x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqincb x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincb x0, w0 +# CHECK-NEXT: 1 2 0.50 sqincb x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincb x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqincb x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 0.50 sqincd x0 # CHECK-NEXT: 1 2 0.50 sqincd x0, #14 # CHECK-NEXT: 1 2 0.50 sqincd x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqincd x0, pow2 # CHECK-NEXT: 1 2 0.50 sqincd x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqincd x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqincd x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqincd x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqincd x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincd x0, w0 +# CHECK-NEXT: 1 2 0.50 sqincd x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincd x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqincd x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqincd z0.d # CHECK-NEXT: 1 2 1.00 sqincd z0.d, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqincd z0.d, pow2 @@ -5753,10 +5753,10 @@ # CHECK-NEXT: 1 2 0.50 sqinch x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqinch x0, pow2 # CHECK-NEXT: 1 2 0.50 sqinch x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqinch x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqinch x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqinch x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqinch x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqinch x0, w0 +# CHECK-NEXT: 1 2 0.50 sqinch x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqinch x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqinch x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqinch z0.h # CHECK-NEXT: 1 2 1.00 sqinch z0.h, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqinch z0.h, pow2 @@ -5765,10 +5765,10 @@ # CHECK-NEXT: 1 2 0.50 sqincp x0, p0.d # CHECK-NEXT: 1 2 0.50 sqincp x0, p0.h # CHECK-NEXT: 1 2 0.50 sqincp x0, p0.s -# CHECK-NEXT: 1 2 0.50 U sqincp xzr, p15.b, wzr -# CHECK-NEXT: 1 2 0.50 U sqincp xzr, p15.d, wzr -# CHECK-NEXT: 1 2 0.50 U sqincp xzr, p15.h, wzr -# CHECK-NEXT: 1 2 0.50 U sqincp xzr, p15.s, wzr +# CHECK-NEXT: 1 2 0.50 sqincp xzr, p15.b, wzr +# CHECK-NEXT: 1 2 0.50 sqincp xzr, p15.d, wzr +# CHECK-NEXT: 1 2 0.50 sqincp xzr, p15.h, wzr +# CHECK-NEXT: 1 2 0.50 sqincp xzr, p15.s, wzr # CHECK-NEXT: 3 7 1.00 sqincp z0.d, p0.d # CHECK-NEXT: 3 7 1.00 sqincp z0.h, p0.h # CHECK-NEXT: 3 7 1.00 sqincp z0.s, p0.s @@ -5777,10 +5777,10 @@ # CHECK-NEXT: 1 2 0.50 sqincw x0, all, mul #16 # CHECK-NEXT: 1 2 0.50 sqincw x0, pow2 # CHECK-NEXT: 1 2 0.50 sqincw x0, vl1 -# CHECK-NEXT: 1 2 0.50 U sqincw x0, w0 -# CHECK-NEXT: 1 2 0.50 U sqincw x0, w0, all, mul #16 -# CHECK-NEXT: 1 2 0.50 U sqincw x0, w0, pow2 -# CHECK-NEXT: 1 2 0.50 U sqincw x0, w0, pow2, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincw x0, w0 +# CHECK-NEXT: 1 2 0.50 sqincw x0, w0, all, mul #16 +# CHECK-NEXT: 1 2 0.50 sqincw x0, w0, pow2 +# CHECK-NEXT: 1 2 0.50 sqincw x0, w0, pow2, mul #16 # CHECK-NEXT: 1 2 1.00 sqincw z0.s # CHECK-NEXT: 1 2 1.00 sqincw z0.s, all, mul #16 # CHECK-NEXT: 1 2 1.00 sqincw z0.s, pow2 @@ -5834,10 +5834,10 @@ # CHECK-NEXT: 1 4 1.00 sqrshl z0.h, p0/m, z0.h, z1.h # CHECK-NEXT: 1 4 1.00 sqrshl z29.s, p7/m, z29.s, z30.s # CHECK-NEXT: 1 4 1.00 sqrshl z31.d, p7/m, z31.d, z30.d -# CHECK-NEXT: 1 4 1.00 U sqrshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U sqrshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U sqrshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U sqrshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 sqrshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 sqrshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 sqrshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 sqrshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 sqrshrnb z0.b, z0.h, #1 # CHECK-NEXT: 1 4 1.00 sqrshrnb z0.h, z0.s, #1 # CHECK-NEXT: 1 4 1.00 sqrshrnb z0.s, z0.d, #1 @@ -5874,10 +5874,10 @@ # CHECK-NEXT: 1 4 1.00 sqshl z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 sqshl z31.h, p0/m, z31.h, #15 # CHECK-NEXT: 1 4 1.00 sqshl z31.s, p0/m, z31.s, #31 -# CHECK-NEXT: 1 4 1.00 U sqshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U sqshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U sqshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U sqshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 sqshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 sqshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 sqshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 sqshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 sqshlu z0.b, p0/m, z0.b, #0 # CHECK-NEXT: 1 4 1.00 sqshlu z0.d, p0/m, z0.d, #0 # CHECK-NEXT: 1 4 1.00 sqshlu z0.h, p0/m, z0.h, #0 @@ -5961,10 +5961,10 @@ # CHECK-NEXT: 1 4 1.00 srshl z0.h, p0/m, z0.h, z1.h # CHECK-NEXT: 1 4 1.00 srshl z29.s, p7/m, z29.s, z30.s # CHECK-NEXT: 1 4 1.00 srshl z31.d, p7/m, z31.d, z30.d -# CHECK-NEXT: 1 4 1.00 U srshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U srshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U srshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U srshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 srshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 srshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 srshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 srshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 srshr z0.b, p0/m, z0.b, #1 # CHECK-NEXT: 1 4 1.00 srshr z0.d, p0/m, z0.d, #1 # CHECK-NEXT: 1 4 1.00 srshr z0.h, p0/m, z0.h, #1 @@ -6104,66 +6104,66 @@ # CHECK-NEXT: 2 2 0.50 * st1w { z31.d }, p7, [z31.d, #124] # CHECK-NEXT: 2 2 0.50 * st1w { z31.s }, p7, [sp, #-1, mul vl] # CHECK-NEXT: 4 4 1.00 * st1w { z31.s }, p7, [z31.s, #124] -# CHECK-NEXT: 2 4 0.50 * U st2b { z0.b, z1.b }, p0, [x0, x0] -# CHECK-NEXT: 2 4 0.50 * U st2b { z0.b, z1.b }, p0, [x0] -# CHECK-NEXT: 2 4 0.50 * U st2b { z21.b, z22.b }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2b { z23.b, z24.b }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2b { z5.b, z6.b }, p3, [x17, x16] -# CHECK-NEXT: 2 4 0.50 * U st2d { z0.d, z1.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 2 4 0.50 * U st2d { z0.d, z1.d }, p0, [x0] -# CHECK-NEXT: 2 4 0.50 * U st2d { z21.d, z22.d }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2d { z23.d, z24.d }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2d { z5.d, z6.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 3 4 0.50 * U st2h { z0.h, z1.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 2 4 0.50 * U st2h { z0.h, z1.h }, p0, [x0] -# CHECK-NEXT: 2 4 0.50 * U st2h { z21.h, z22.h }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2h { z23.h, z24.h }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 3 4 0.50 * U st2h { z5.h, z6.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 2 4 0.50 * U st2w { z0.s, z1.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 2 4 0.50 * U st2w { z0.s, z1.s }, p0, [x0] -# CHECK-NEXT: 2 4 0.50 * U st2w { z21.s, z22.s }, p5, [x10, #10, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2w { z23.s, z24.s }, p3, [x13, #-16, mul vl] -# CHECK-NEXT: 2 4 0.50 * U st2w { z5.s, z6.s }, p3, [x17, x16, lsl #2] -# CHECK-NEXT: 15 7 2.50 * U st3b { z0.b - z2.b }, p0, [x0, x0] -# CHECK-NEXT: 10 7 2.50 * U st3b { z0.b - z2.b }, p0, [x0] -# CHECK-NEXT: 10 7 2.50 * U st3b { z21.b - z23.b }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 10 7 2.50 * U st3b { z23.b - z25.b }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 15 7 2.50 * U st3b { z5.b - z7.b }, p3, [x17, x16] -# CHECK-NEXT: 15 7 2.50 * U st3d { z0.d - z2.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 10 7 2.50 * U st3d { z0.d - z2.d }, p0, [x0] -# CHECK-NEXT: 10 7 2.50 * U st3d { z21.d - z23.d }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 10 7 2.50 * U st3d { z23.d - z25.d }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 15 7 2.50 * U st3d { z5.d - z7.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 15 7 2.50 * U st3h { z0.h - z2.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 10 7 2.50 * U st3h { z0.h - z2.h }, p0, [x0] -# CHECK-NEXT: 10 7 2.50 * U st3h { z21.h - z23.h }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 10 7 2.50 * U st3h { z23.h - z25.h }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 15 7 2.50 * U st3h { z5.h - z7.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 15 7 2.50 * U st3w { z0.s - z2.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 10 7 2.50 * U st3w { z0.s - z2.s }, p0, [x0] -# CHECK-NEXT: 10 7 2.50 * U st3w { z21.s - z23.s }, p5, [x10, #15, mul vl] -# CHECK-NEXT: 10 7 2.50 * U st3w { z23.s - z25.s }, p3, [x13, #-24, mul vl] -# CHECK-NEXT: 15 7 2.50 * U st3w { z5.s - z7.s }, p3, [x17, x16, lsl #2] -# CHECK-NEXT: 27 11 4.50 * U st4b { z0.b - z3.b }, p0, [x0, x0] -# CHECK-NEXT: 18 11 4.50 * U st4b { z0.b - z3.b }, p0, [x0] -# CHECK-NEXT: 18 11 4.50 * U st4b { z21.b - z24.b }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 18 11 4.50 * U st4b { z23.b - z26.b }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 27 11 4.50 * U st4b { z5.b - z8.b }, p3, [x17, x16] -# CHECK-NEXT: 27 11 4.50 * U st4d { z0.d - z3.d }, p0, [x0, x0, lsl #3] -# CHECK-NEXT: 18 11 4.50 * U st4d { z0.d - z3.d }, p0, [x0] -# CHECK-NEXT: 18 11 4.50 * U st4d { z21.d - z24.d }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 18 11 4.50 * U st4d { z23.d - z26.d }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 27 11 4.50 * U st4d { z5.d - z8.d }, p3, [x17, x16, lsl #3] -# CHECK-NEXT: 27 11 4.50 * U st4h { z0.h - z3.h }, p0, [x0, x0, lsl #1] -# CHECK-NEXT: 18 11 4.50 * U st4h { z0.h - z3.h }, p0, [x0] -# CHECK-NEXT: 18 11 4.50 * U st4h { z21.h - z24.h }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 18 11 4.50 * U st4h { z23.h - z26.h }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 27 11 4.50 * U st4h { z5.h - z8.h }, p3, [x17, x16, lsl #1] -# CHECK-NEXT: 27 11 4.50 * U st4w { z0.s - z3.s }, p0, [x0, x0, lsl #2] -# CHECK-NEXT: 18 11 4.50 * U st4w { z0.s - z3.s }, p0, [x0] -# CHECK-NEXT: 18 11 4.50 * U st4w { z21.s - z24.s }, p5, [x10, #20, mul vl] -# CHECK-NEXT: 18 11 4.50 * U st4w { z23.s - z26.s }, p3, [x13, #-32, mul vl] -# CHECK-NEXT: 27 11 4.50 * U st4w { z5.s - z8.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 2 4 0.50 * st2b { z0.b, z1.b }, p0, [x0, x0] +# CHECK-NEXT: 2 4 0.50 * st2b { z0.b, z1.b }, p0, [x0] +# CHECK-NEXT: 2 4 0.50 * st2b { z21.b, z22.b }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2b { z23.b, z24.b }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2b { z5.b, z6.b }, p3, [x17, x16] +# CHECK-NEXT: 2 4 0.50 * st2d { z0.d, z1.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 2 4 0.50 * st2d { z0.d, z1.d }, p0, [x0] +# CHECK-NEXT: 2 4 0.50 * st2d { z21.d, z22.d }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2d { z23.d, z24.d }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2d { z5.d, z6.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 3 4 0.50 * st2h { z0.h, z1.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 2 4 0.50 * st2h { z0.h, z1.h }, p0, [x0] +# CHECK-NEXT: 2 4 0.50 * st2h { z21.h, z22.h }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2h { z23.h, z24.h }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 3 4 0.50 * st2h { z5.h, z6.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 2 4 0.50 * st2w { z0.s, z1.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 2 4 0.50 * st2w { z0.s, z1.s }, p0, [x0] +# CHECK-NEXT: 2 4 0.50 * st2w { z21.s, z22.s }, p5, [x10, #10, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2w { z23.s, z24.s }, p3, [x13, #-16, mul vl] +# CHECK-NEXT: 2 4 0.50 * st2w { z5.s, z6.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 15 7 2.50 * st3b { z0.b - z2.b }, p0, [x0, x0] +# CHECK-NEXT: 10 7 2.50 * st3b { z0.b - z2.b }, p0, [x0] +# CHECK-NEXT: 10 7 2.50 * st3b { z21.b - z23.b }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 10 7 2.50 * st3b { z23.b - z25.b }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 15 7 2.50 * st3b { z5.b - z7.b }, p3, [x17, x16] +# CHECK-NEXT: 15 7 2.50 * st3d { z0.d - z2.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 10 7 2.50 * st3d { z0.d - z2.d }, p0, [x0] +# CHECK-NEXT: 10 7 2.50 * st3d { z21.d - z23.d }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 10 7 2.50 * st3d { z23.d - z25.d }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 15 7 2.50 * st3d { z5.d - z7.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 15 7 2.50 * st3h { z0.h - z2.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 10 7 2.50 * st3h { z0.h - z2.h }, p0, [x0] +# CHECK-NEXT: 10 7 2.50 * st3h { z21.h - z23.h }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 10 7 2.50 * st3h { z23.h - z25.h }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 15 7 2.50 * st3h { z5.h - z7.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 15 7 2.50 * st3w { z0.s - z2.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 10 7 2.50 * st3w { z0.s - z2.s }, p0, [x0] +# CHECK-NEXT: 10 7 2.50 * st3w { z21.s - z23.s }, p5, [x10, #15, mul vl] +# CHECK-NEXT: 10 7 2.50 * st3w { z23.s - z25.s }, p3, [x13, #-24, mul vl] +# CHECK-NEXT: 15 7 2.50 * st3w { z5.s - z7.s }, p3, [x17, x16, lsl #2] +# CHECK-NEXT: 27 11 4.50 * st4b { z0.b - z3.b }, p0, [x0, x0] +# CHECK-NEXT: 18 11 4.50 * st4b { z0.b - z3.b }, p0, [x0] +# CHECK-NEXT: 18 11 4.50 * st4b { z21.b - z24.b }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 18 11 4.50 * st4b { z23.b - z26.b }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 27 11 4.50 * st4b { z5.b - z8.b }, p3, [x17, x16] +# CHECK-NEXT: 27 11 4.50 * st4d { z0.d - z3.d }, p0, [x0, x0, lsl #3] +# CHECK-NEXT: 18 11 4.50 * st4d { z0.d - z3.d }, p0, [x0] +# CHECK-NEXT: 18 11 4.50 * st4d { z21.d - z24.d }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 18 11 4.50 * st4d { z23.d - z26.d }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 27 11 4.50 * st4d { z5.d - z8.d }, p3, [x17, x16, lsl #3] +# CHECK-NEXT: 27 11 4.50 * st4h { z0.h - z3.h }, p0, [x0, x0, lsl #1] +# CHECK-NEXT: 18 11 4.50 * st4h { z0.h - z3.h }, p0, [x0] +# CHECK-NEXT: 18 11 4.50 * st4h { z21.h - z24.h }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 18 11 4.50 * st4h { z23.h - z26.h }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 27 11 4.50 * st4h { z5.h - z8.h }, p3, [x17, x16, lsl #1] +# CHECK-NEXT: 27 11 4.50 * st4w { z0.s - z3.s }, p0, [x0, x0, lsl #2] +# CHECK-NEXT: 18 11 4.50 * st4w { z0.s - z3.s }, p0, [x0] +# CHECK-NEXT: 18 11 4.50 * st4w { z21.s - z24.s }, p5, [x10, #20, mul vl] +# CHECK-NEXT: 18 11 4.50 * st4w { z23.s - z26.s }, p3, [x13, #-32, mul vl] +# CHECK-NEXT: 27 11 4.50 * st4w { z5.s - z8.s }, p3, [x17, x16, lsl #2] # CHECK-NEXT: 2 2 0.50 * stnt1b { z0.b }, p0, [x0, x0] # CHECK-NEXT: 2 2 0.50 * stnt1b { z0.b }, p0, [x0] # CHECK-NEXT: 2 2 0.50 * stnt1b { z0.d }, p0, [z1.d] @@ -6204,9 +6204,9 @@ # CHECK-NEXT: 1 1 0.50 * str p0, [x0] # CHECK-NEXT: 1 1 0.50 * str p15, [sp, #-256, mul vl] # CHECK-NEXT: 1 1 0.50 * str p5, [x10, #255, mul vl] -# CHECK-NEXT: 2 2 0.50 * U str z0, [x0] -# CHECK-NEXT: 2 2 0.50 * U str z21, [x10, #-256, mul vl] -# CHECK-NEXT: 2 2 0.50 * U str z31, [sp, #255, mul vl] +# CHECK-NEXT: 2 2 0.50 * str z0, [x0] +# CHECK-NEXT: 2 2 0.50 * str z21, [x10, #-256, mul vl] +# CHECK-NEXT: 2 2 0.50 * str z31, [sp, #255, mul vl] # CHECK-NEXT: 1 2 0.50 sub z0.b, p0/m, z0.b, z0.b # CHECK-NEXT: 1 2 0.50 sub z0.b, z0.b, #0 # CHECK-NEXT: 1 2 0.50 sub z0.b, z0.b, z0.b @@ -6293,10 +6293,10 @@ # CHECK-NEXT: 1 2 1.00 sxth z31.s, p7/m, z31.s # CHECK-NEXT: 1 2 1.00 sxtw z0.d, p0/m, z0.d # CHECK-NEXT: 1 2 1.00 sxtw z31.d, p7/m, z31.d -# CHECK-NEXT: 1 2 0.50 U tbl z28.b, { z29.b, z30.b }, z31.b -# CHECK-NEXT: 1 2 0.50 U tbl z28.d, { z29.d, z30.d }, z31.d -# CHECK-NEXT: 1 2 0.50 U tbl z28.h, { z29.h, z30.h }, z31.h -# CHECK-NEXT: 1 2 0.50 U tbl z28.s, { z29.s, z30.s }, z31.s +# CHECK-NEXT: 1 2 0.50 tbl z28.b, { z29.b, z30.b }, z31.b +# CHECK-NEXT: 1 2 0.50 tbl z28.d, { z29.d, z30.d }, z31.d +# CHECK-NEXT: 1 2 0.50 tbl z28.h, { z29.h, z30.h }, z31.h +# CHECK-NEXT: 1 2 0.50 tbl z28.s, { z29.s, z30.s }, z31.s # CHECK-NEXT: 1 2 0.50 tbl z31.b, { z31.b }, z31.b # CHECK-NEXT: 1 2 0.50 tbl z31.d, { z31.d }, z31.d # CHECK-NEXT: 1 2 0.50 tbl z31.h, { z31.h }, z31.h @@ -6595,10 +6595,10 @@ # CHECK-NEXT: 1 4 1.00 uqrshl z0.h, p0/m, z0.h, z1.h # CHECK-NEXT: 1 4 1.00 uqrshl z29.s, p7/m, z29.s, z30.s # CHECK-NEXT: 1 4 1.00 uqrshl z31.d, p7/m, z31.d, z30.d -# CHECK-NEXT: 1 4 1.00 U uqrshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U uqrshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U uqrshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U uqrshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 uqrshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 uqrshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 uqrshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 uqrshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 uqrshrnb z0.b, z0.h, #1 # CHECK-NEXT: 1 4 1.00 uqrshrnb z0.h, z0.s, #1 # CHECK-NEXT: 1 4 1.00 uqrshrnb z0.s, z0.d, #1 @@ -6623,10 +6623,10 @@ # CHECK-NEXT: 1 4 1.00 uqshl z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 uqshl z31.h, p0/m, z31.h, #15 # CHECK-NEXT: 1 4 1.00 uqshl z31.s, p0/m, z31.s, #31 -# CHECK-NEXT: 1 4 1.00 U uqshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U uqshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U uqshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U uqshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 uqshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 uqshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 uqshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 uqshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 uqshrnb z0.b, z0.h, #1 # CHECK-NEXT: 1 4 1.00 uqshrnb z0.h, z0.s, #1 # CHECK-NEXT: 1 4 1.00 uqshrnb z0.s, z0.d, #1 @@ -6677,10 +6677,10 @@ # CHECK-NEXT: 1 4 1.00 urshl z0.h, p0/m, z0.h, z1.h # CHECK-NEXT: 1 4 1.00 urshl z29.s, p7/m, z29.s, z30.s # CHECK-NEXT: 1 4 1.00 urshl z31.d, p7/m, z31.d, z30.d -# CHECK-NEXT: 1 4 1.00 U urshlr z0.b, p0/m, z0.b, z1.b -# CHECK-NEXT: 1 4 1.00 U urshlr z0.h, p0/m, z0.h, z1.h -# CHECK-NEXT: 1 4 1.00 U urshlr z29.s, p7/m, z29.s, z30.s -# CHECK-NEXT: 1 4 1.00 U urshlr z31.d, p7/m, z31.d, z30.d +# CHECK-NEXT: 1 4 1.00 urshlr z0.b, p0/m, z0.b, z1.b +# CHECK-NEXT: 1 4 1.00 urshlr z0.h, p0/m, z0.h, z1.h +# CHECK-NEXT: 1 4 1.00 urshlr z29.s, p7/m, z29.s, z30.s +# CHECK-NEXT: 1 4 1.00 urshlr z31.d, p7/m, z31.d, z30.d # CHECK-NEXT: 1 4 1.00 urshr z0.b, p0/m, z0.b, #1 # CHECK-NEXT: 1 4 1.00 urshr z0.d, p0/m, z0.d, #1 # CHECK-NEXT: 1 4 1.00 urshr z0.h, p0/m, z0.h, #1 @@ -6779,14 +6779,14 @@ # CHECK-NEXT: 1 3 0.50 whilege p15.h, x0, xzr # CHECK-NEXT: 1 3 0.50 whilege p15.s, w0, wzr # CHECK-NEXT: 1 3 0.50 whilege p15.s, x0, xzr -# CHECK-NEXT: 1 3 0.50 * * U whilerw p15.b, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilerw p15.d, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilerw p15.h, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilerw p15.s, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilewr p15.b, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilewr p15.d, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilewr p15.h, x30, x30 -# CHECK-NEXT: 1 3 0.50 * * U whilewr p15.s, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilerw p15.b, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilerw p15.d, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilerw p15.h, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilerw p15.s, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilewr p15.b, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilewr p15.d, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilewr p15.h, x30, x30 +# CHECK-NEXT: 1 3 0.50 whilewr p15.s, x30, x30 # CHECK-NEXT: 1 2 2.00 * U wrffr p0.b # CHECK-NEXT: 1 2 2.00 * U wrffr p15.b # CHECK-NEXT: 1 2 1.00 xar z0.b, z0.b, z1.b, #1