# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 KEEPWITH
# INFO This file automatically generated by andre on Fri Jun  8 10:47:29 2018
# INFO Direct edits to this file may be lost in future updates
# INFO Command line arguments: ['../../../ProcessorTest/test/andre/scrape/a64ldst.py']

ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=0 & b_14=0 & b_13=0                            [ tmp = 1; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=0 & b_10=0 [ tmp = 1; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=0 & b_14=0 & b_13=0                            [ tmp = 2; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=0 & b_14=1 & b_13=0                   & b_10=0 [ tmp = 2; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=0 & b_10=1 [ tmp = 2; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=0 & b_10=0 [ tmp = 2; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=0 & b_14=0 & b_13=1                            [ tmp = 3; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=0 & b_10=0 [ tmp = 3; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=0 & b_14=0 & b_13=1                            [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=0 & b_14=1 & b_13=0                   & b_10=0 [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=0 & b_13=0          & b_11=0 & b_10=0 [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=1 & b_10=0 [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=0 & b_10=1 [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=0 & b_10=0 [ tmp = 4; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=0 & b_14=1 & b_13=1                   & b_10=0 [ tmp = 6; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=0 & b_10=1 [ tmp = 6; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=1 & b_13=1 & b_12=1                   [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=0 & b_14=1 & b_13=1                   & b_10=0 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=0 & b_13=0          & b_11=0 & b_10=0 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=0 & b_13=0 & b_12=0 & b_11=0 & b_10=1 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=1 & b_10=1 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=1 & b_10=0 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=0 & b_10=1 [ tmp = 8; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=0 & b_13=1          & b_11=0 & b_10=0 [ tmp = 12; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=1 & b_10=0 [ tmp = 12; ] { }
ldst_imm: tmp is b_30=1 & b_24=0 & b_21=0 & b_15=0 & b_14=1 & b_13=1 & b_12=1                   [ tmp = 16; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=1 & b_14=0          & b_12=0 & b_11=0          [ tmp = 16; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=1 & b_14=0          & b_12=0 & b_11=1 & b_10=0 [ tmp = 16; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=1 & b_14=0 & b_13=1 & b_12=0 & b_11=1 & b_10=1 [ tmp = 16; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=0 & b_13=0 & b_12=0 & b_11=0 & b_10=1 [ tmp = 16; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=0 & b_13=1          & b_11=0 & b_10=0 [ tmp = 16; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=0 & b_12=0 & b_11=1 & b_10=1 [ tmp = 16; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=1 & b_10=0 [ tmp = 16; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=1          & b_12=0 & b_11=0          [ tmp = 24; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=1          & b_12=0 & b_11=1 & b_10=0 [ tmp = 24; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=1 & b_13=1 & b_12=0 & b_11=1 & b_10=1 [ tmp = 24; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=0 & b_13=1 & b_12=0 & b_11=0 & b_10=1 [ tmp = 24; ] { }
ldst_imm: tmp is          b_24=1 & b_21=0 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=1 & b_10=1 [ tmp = 24; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=0          & b_12=0 & b_11=0          [ tmp = 32; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=0          & b_12=0 & b_11=1 & b_10=0 [ tmp = 32; ] { }
ldst_imm: tmp is b_30=0 & b_24=0 & b_21=0 & b_15=0 & b_14=0 & b_13=1 & b_12=0 & b_11=1 & b_10=1 [ tmp = 32; ] { }
ldst_imm: tmp is b_30=1 & b_24=0 & b_21=0 & b_15=1 & b_14=0          & b_12=0                   [ tmp = 32; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=0 & b_13=1 & b_12=0 & b_11=0 & b_10=1 [ tmp = 32; ] { }
ldst_imm: tmp is          b_24=1 & b_21=1 & b_15=1 & b_14=1 & b_13=1 & b_12=0 & b_11=1 & b_10=1 [ tmp = 32; ] { }
ldst_imm: tmp is b_30=1 & b_24=0 & b_21=0 & b_15=0 & b_14=1          & b_12=0                   [ tmp = 48; ] { }
ldst_imm: tmp is b_30=1 & b_24=0 & b_21=0 & b_15=0 & b_14=0          & b_12=0                   [ tmp = 64; ] { }

ldst_wback: "" is b_23=0 & b_1620=0b00000 { }
ldst_wback: ", #"^ldst_imm is b_23=1 & b_1620=0b11111 & Rn_GPR64xsp & ldst_imm { Rn_GPR64xsp = tmp_ldXn; }
ldst_wback: ", "^Rm_GPR64 is b_23=1 & Rn_GPR64xsp & Rm_GPR64 { Rn_GPR64xsp = Rm_GPR64; }

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c402000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8B, Vt2.8B, Vt3.8B, Vt4.8B}, [Xn|SP] [, wback]

:ld1 {vVt^".8B", vVtt^".8B", vVttt^".8B", vVtttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c402400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4H, Vt2.4H, Vt3.4H, Vt4.4H}, [Xn|SP] [, wback]

:ld1 {vVt^".4H", vVtt^".4H", vVttt^".4H", vVtttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c402800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2S, Vt2.2S, Vt3.2S, Vt4.2S}, [Xn|SP] [, wback]

:ld1 {vVt^".2S", vVtt^".2S", vVttt^".2S", vVtttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c402c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.1D, Vt2.1D, Vt3.1D, Vt4.1D}, [Xn|SP] [, wback]

:ld1 {vVt^".1D", vVtt^".1D", vVttt^".1D", vVtttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c402000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.16B, Vt2.16B, Vt3.16B, Vt4.16B}, [Xn|SP] [, wback]

:ld1 {vVt^".16B", vVtt^".16B", vVttt^".16B", vVtttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c402400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8H, Vt2.8H, Vt3.8H, Vt4.8H}, [Xn|SP] [, wback]

:ld1 {vVt^".8H", vVtt^".8H", vVttt^".8H", vVtttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c402800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4S, Vt2.4S, Vt3.4S, Vt4.4S}, [Xn|SP] [, wback]

:ld1 {vVt^".4S", vVtt^".4S", vVttt^".4S", vVtttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c402c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2D, Vt2.2D, Vt3.2D, Vt4.2D}, [Xn|SP] [, wback]

:ld1 {vVt^".2D", vVtt^".2D", vVttt^".2D", vVtttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0010 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c406000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8B, Vt2.8B, Vt3.8B}, [Xn|SP] [, wback]

:ld1 {vVt^".8B", vVtt^".8B", vVttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c406400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4H, Vt2.4H, Vt3.4H}, [Xn|SP] [, wback]

:ld1 {vVt^".4H", vVtt^".4H", vVttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c406800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2S, Vt2.2S, Vt3.2S}, [Xn|SP] [, wback]

:ld1 {vVt^".2S", vVtt^".2S", vVttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c406c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.1D, Vt2.1D, Vt3.1D}, [Xn|SP] [, wback]

:ld1 {vVt^".1D", vVtt^".1D", vVttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c406000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.16B, Vt2.16B, Vt3.16B}, [Xn|SP] [, wback]

:ld1 {vVt^".16B", vVtt^".16B", vVttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c406400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8H, Vt2.8H, Vt3.8H}, [Xn|SP] [, wback]

:ld1 {vVt^".8H", vVtt^".8H", vVttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c406800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4S, Vt2.4S, Vt3.4S}, [Xn|SP] [, wback]

:ld1 {vVt^".4S", vVtt^".4S", vVttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c406c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2D, Vt2.2D, Vt3.2D}, [Xn|SP] [, wback]

:ld1 {vVt^".2D", vVtt^".2D", vVttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0110 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c407000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8B}, [Xn|SP] [, wback]

:ld1 {vVt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c407400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4H}, [Xn|SP] [, wback]

:ld1 {vVt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c407800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2S}, [Xn|SP] [, wback]

:ld1 {vVt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c407c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.1D}, [Xn|SP] [, wback]

:ld1 {vVt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c407000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.16B}, [Xn|SP] [, wback]

:ld1 {vVt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c407400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8H}, [Xn|SP] [, wback]

:ld1 {vVt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c407800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4S}, [Xn|SP] [, wback]

:ld1 {vVt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c407c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2D}, [Xn|SP] [, wback]

:ld1 {vVt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0111 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c40a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8B, Vt2.8B}, [Xn|SP] [, wback]

:ld1 {vVt^".8B", vVtt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c40a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4H, Vt2.4H}, [Xn|SP] [, wback]

:ld1 {vVt^".4H", vVtt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c40a800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2S, Vt2.2S}, [Xn|SP] [, wback]

:ld1 {vVt^".2S", vVtt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x0c40ac00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.1D, Vt2.1D}, [Xn|SP] [, wback]

:ld1 {vVt^".1D", vVtt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c40a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.16B, Vt2.16B}, [Xn|SP] [, wback]

:ld1 {vVt^".16B", vVtt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c40a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.8H, Vt2.8H}, [Xn|SP] [, wback]

:ld1 {vVt^".8H", vVtt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c40a800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.4S, Vt2.4S}, [Xn|SP] [, wback]

:ld1 {vVt^".4S", vVtt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0c402000/mask=xbfff2000
# C7.2.162 LD1 (multiple structures) page C7-1359 line 78995 MATCH x0cc02000/mask=xbfe02000
# CONSTRUCT x4c40ac00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.2D, Vt2.2D}, [Xn|SP] [, wback]

:ld1 {vVt^".2D", vVtt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1010 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d400000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[0], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d400400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[1], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d400800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[2], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d400c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[3], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d401000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[4], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d401400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[5], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d401800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[6], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d401c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[7], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d400000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[8], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d400400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[9], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d400800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[10], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d400c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[11], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d401000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[12], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d401400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[13], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d401800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[14], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d401c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.B}[15], [Xn|SP] [, wback]

:ld1 {vVt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d404000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[0], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d404800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[1], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d405000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[2], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d405800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[3], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d404000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[4], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d404800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[5], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d405000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[6], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d405800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.H}[7], [Xn|SP] [, wback]

:ld1 {vVt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d408000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.S}[0], [Xn|SP] [, wback]

:ld1 {vVt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d409000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.S}[1], [Xn|SP] [, wback]

:ld1 {vVt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d408000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.S}[2], [Xn|SP] [, wback]

:ld1 {vVt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d409000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.S}[3], [Xn|SP] [, wback]

:ld1 {vVt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d408400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.D}[0], [Xn|SP] [, wback]

:ld1 {vVt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d408400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld1 {Vt.D}[1], [Xn|SP] [, wback]

:ld1 {vVt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d40c000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.8B}, [Xn|SP] [, wback]

:ld1r {vVt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d40c400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.4H}, [Xn|SP] [, wback]

:ld1r {vVt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d40c800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.2S}, [Xn|SP] [, wback]

:ld1r {vVt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x0d40cc00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.1D}, [Xn|SP] [, wback]

:ld1r {vVt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d40c000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.16B}, [Xn|SP] [, wback]

:ld1r {vVt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d40c400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.8H}, [Xn|SP] [, wback]

:ld1r {vVt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d40c800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.4S}, [Xn|SP] [, wback]

:ld1r {vVt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0d40c000/mask=xbffff000
# C7.2.164 LD1R page C7-1367 line 79486 MATCH x0dc0c000/mask=xbfe0f000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0d400000/mask=xbfff2000
# C7.2.163 LD1 (single structure) page C7-1363 line 79245 MATCH x0dc00000/mask=xbfe02000
# CONSTRUCT x4d40cc00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld1r {Vt.2D}, [Xn|SP] [, wback]

:ld1r {vVt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b110 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x0c408000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.8B, Vt2.8B}, [Xn|SP] [, wback]

:ld2 {vVt^".8B", vVtt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x0c408400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.4H, Vt2.4H}, [Xn|SP] [, wback]

:ld2 {vVt^".4H", vVtt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x0c408800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.2S, Vt2.2S}, [Xn|SP] [, wback]

:ld2 {vVt^".2S", vVtt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x4c408000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.16B, Vt2.16B}, [Xn|SP] [, wback]

:ld2 {vVt^".16B", vVtt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x4c408400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.8H, Vt2.8H}, [Xn|SP] [, wback]

:ld2 {vVt^".8H", vVtt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x4c408800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.4S, Vt2.4S}, [Xn|SP] [, wback]

:ld2 {vVt^".4S", vVtt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0c408000/mask=xbffff000
# C7.2.165 LD2 (multiple structures) page C7-1370 line 79672 MATCH x0cc08000/mask=xbfe0f000
# CONSTRUCT x4c408c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.2D, Vt2.2D}, [Xn|SP] [, wback]

:ld2 {vVt^".2D", vVtt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b1000 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d600000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[0], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d600400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[1], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d600800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[2], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d600c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[3], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d601000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[4], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d601400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[5], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d601800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[6], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d601c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[7], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d600000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[8], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d600400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[9], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d600800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[10], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d600c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[11], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d601000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[12], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d601400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[13], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d601800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[14], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d601c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.B, Vt2.B}[15], [Xn|SP] [, wback]

:ld2 {vVt^".B", vVtt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d604000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[0], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d604800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[1], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d605000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[2], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d605800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[3], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d604000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[4], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d604800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[5], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d605000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[6], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d605800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.H, Vt2.H}[7], [Xn|SP] [, wback]

:ld2 {vVt^".H", vVtt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d608000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.S, Vt2.S}[0], [Xn|SP] [, wback]

:ld2 {vVt^".S", vVtt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d609000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.S, Vt2.S}[1], [Xn|SP] [, wback]

:ld2 {vVt^".S", vVtt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d608000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.S, Vt2.S}[2], [Xn|SP] [, wback]

:ld2 {vVt^".S", vVtt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d609000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.S, Vt2.S}[3], [Xn|SP] [, wback]

:ld2 {vVt^".S", vVtt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d608400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.D, Vt2.D}[0], [Xn|SP] [, wback]

:ld2 {vVt^".D", vVtt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d608400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld2 {Vt.D, Vt2.D}[1], [Xn|SP] [, wback]

:ld2 {vVt^".D", vVtt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d60c000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.8B, Vt2.8B}, [Xn|SP] [, wback]

:ld2r {vVt^".8B", vVtt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d60c400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.4H, Vt2.4H}, [Xn|SP] [, wback]

:ld2r {vVt^".4H", vVtt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d60c800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.2S, Vt2.2S}, [Xn|SP] [, wback]

:ld2r {vVt^".2S", vVtt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x0d60cc00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.1D, Vt2.1D}, [Xn|SP] [, wback]

:ld2r {vVt^".1D", vVtt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d60c000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.16B, Vt2.16B}, [Xn|SP] [, wback]

:ld2r {vVt^".16B", vVtt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d60c400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.8H, Vt2.8H}, [Xn|SP] [, wback]

:ld2r {vVt^".8H", vVtt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d60c800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.4S, Vt2.4S}, [Xn|SP] [, wback]

:ld2r {vVt^".4S", vVtt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0d60c000/mask=xbffff000
# C7.2.167 LD2R page C7-1377 line 80085 MATCH x0de0c000/mask=xbfe0f000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0d600000/mask=xbfff2000
# C7.2.166 LD2 (single structure) page C7-1373 line 79842 MATCH x0de00000/mask=xbfe02000
# CONSTRUCT x4d60cc00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld2r {Vt.2D, Vt2.2D}, [Xn|SP] [, wback]

:ld2r {vVt^".2D", vVtt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b110 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x0c404000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.8B, Vt2.8B, Vt3.8B}, [Xn|SP] [, wback]

:ld3 {vVt^".8B", vVtt^".8B", vVttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x0c404400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.4H, Vt2.4H, Vt3.4H}, [Xn|SP] [, wback]

:ld3 {vVt^".4H", vVtt^".4H", vVttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x0c404800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.2S, Vt2.2S, Vt3.2S}, [Xn|SP] [, wback]

:ld3 {vVt^".2S", vVtt^".2S", vVttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x4c404000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.16B, Vt2.16B, Vt3.16B}, [Xn|SP] [, wback]

:ld3 {vVt^".16B", vVtt^".16B", vVttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x4c404400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.8H, Vt2.8H, Vt3.8H}, [Xn|SP] [, wback]

:ld3 {vVt^".8H", vVtt^".8H", vVttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x4c404800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.4S, Vt2.4S, Vt3.4S}, [Xn|SP] [, wback]

:ld3 {vVt^".4S", vVtt^".4S", vVttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0c404000/mask=xbffff000
# C7.2.168 LD3 (multiple structures) page C7-1380 line 80273 MATCH x0cc04000/mask=xbfe0f000
# CONSTRUCT x4c404c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.2D, Vt2.2D, Vt3.2D}, [Xn|SP] [, wback]

:ld3 {vVt^".2D", vVtt^".2D", vVttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0100 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d402000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[0], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d402400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[1], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d402800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[2], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d402c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[3], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d403000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[4], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d403400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[5], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d403800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[6], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d403c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[7], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d402000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[8], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d402400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[9], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d402800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[10], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d402c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[11], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d403000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[12], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d403400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[13], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d403800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[14], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d403c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.B, Vt2.B, Vt3.B}[15], [Xn|SP] [, wback]

:ld3 {vVt^".B", vVtt^".B", vVttt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d406000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[0], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d406800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[1], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d407000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[2], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d407800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[3], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d406000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[4], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d406800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[5], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d407000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[6], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d407800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.H, Vt2.H, Vt3.H}[7], [Xn|SP] [, wback]

:ld3 {vVt^".H", vVtt^".H", vVttt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.S, Vt2.S, Vt3.S}[0], [Xn|SP] [, wback]

:ld3 {vVt^".S", vVtt^".S", vVttt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.S, Vt2.S, Vt3.S}[1], [Xn|SP] [, wback]

:ld3 {vVt^".S", vVtt^".S", vVttt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.S, Vt2.S, Vt3.S}[2], [Xn|SP] [, wback]

:ld3 {vVt^".S", vVtt^".S", vVttt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.S, Vt2.S, Vt3.S}[3], [Xn|SP] [, wback]

:ld3 {vVt^".S", vVtt^".S", vVttt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.D, Vt2.D, Vt3.D}[0], [Xn|SP] [, wback]

:ld3 {vVt^".D", vVtt^".D", vVttt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld3 {Vt.D, Vt2.D, Vt3.D}[1], [Xn|SP] [, wback]

:ld3 {vVt^".D", vVtt^".D", vVttt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40e000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.8B, Vt2.8B, Vt3.8B}, [Xn|SP] [, wback]

:ld3r {vVt^".8B", vVtt^".8B", vVttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40e400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.4H, Vt2.4H, Vt3.4H}, [Xn|SP] [, wback]

:ld3r {vVt^".4H", vVtt^".4H", vVttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40e800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.2S, Vt2.2S, Vt3.2S}, [Xn|SP] [, wback]

:ld3r {vVt^".2S", vVtt^".2S", vVttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x0d40ec00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.1D, Vt2.1D, Vt3.1D}, [Xn|SP] [, wback]

:ld3r {vVt^".1D", vVtt^".1D", vVttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40e000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.16B, Vt2.16B, Vt3.16B}, [Xn|SP] [, wback]

:ld3r {vVt^".16B", vVtt^".16B", vVttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40e400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.8H, Vt2.8H, Vt3.8H}, [Xn|SP] [, wback]

:ld3r {vVt^".8H", vVtt^".8H", vVttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40e800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.4S, Vt2.4S, Vt3.4S}, [Xn|SP] [, wback]

:ld3r {vVt^".4S", vVtt^".4S", vVttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0d40e000/mask=xbffff000
# C7.2.170 LD3R page C7-1387 line 80704 MATCH x0dc0e000/mask=xbfe0f000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0d402000/mask=xbfff2000
# C7.2.169 LD3 (single structure) page C7-1383 line 80459 MATCH x0dc02000/mask=xbfe02000
# CONSTRUCT x4d40ec00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld3r {Vt.2D, Vt2.2D, Vt3.2D}, [Xn|SP] [, wback]

:ld3r {vVt^".2D", vVtt^".2D", vVttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=0 & b_1315=0b111 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x0c400000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.8B, Vt2.8B, Vt3.8B, Vt4.8B}, [Xn|SP] [, wback]

:ld4 {vVt^".8B", vVtt^".8B", vVttt^".8B", vVtttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x0c400400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.4H, Vt2.4H, Vt3.4H, Vt4.4H}, [Xn|SP] [, wback]

:ld4 {vVt^".4H", vVtt^".4H", vVttt^".4H", vVtttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x0c400800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.2S, Vt2.2S, Vt3.2S, Vt4.2S}, [Xn|SP] [, wback]

:ld4 {vVt^".2S", vVtt^".2S", vVttt^".2S", vVtttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x4c400000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.16B, Vt2.16B, Vt3.16B, Vt4.16B}, [Xn|SP] [, wback]

:ld4 {vVt^".16B", vVtt^".16B", vVttt^".16B", vVtttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x4c400400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.8H, Vt2.8H, Vt3.8H, Vt4.8H}, [Xn|SP] [, wback]

:ld4 {vVt^".8H", vVtt^".8H", vVttt^".8H", vVtttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x4c400800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.4S, Vt2.4S, Vt3.4S, Vt4.4S}, [Xn|SP] [, wback]

:ld4 {vVt^".4S", vVtt^".4S", vVttt^".4S", vVtttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0c400000/mask=xbffff000
# C7.2.171 LD4 (multiple structures) page C7-1390 line 80894 MATCH x0cc00000/mask=xbfe0f000
# CONSTRUCT x4c400c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.2D, Vt2.2D, Vt3.2D, Vt4.2D}, [Xn|SP] [, wback]

:ld4 {vVt^".2D", vVtt^".2D", vVttt^".2D", vVtttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=1 & b_21=0 & b_1215=0b0000 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d602000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[0], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d602400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[1], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d602800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[2], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d602c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[3], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d603000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[4], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d603400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[5], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d603800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[6], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d603c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[7], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d602000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[8], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d602400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[9], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d602800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[10], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d602c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[11], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d603000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[12], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d603400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[13], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d603800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[14], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d603c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[15], [Xn|SP] [, wback]

:ld4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = *:1 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d606000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[0], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d606800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[1], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d607000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[2], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d607800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[3], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d606000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[4], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d606800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[5], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d607000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[6], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d607800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[7], [Xn|SP] [, wback]

:ld4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = *:2 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[0], [Xn|SP] [, wback]

:ld4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[1], [Xn|SP] [, wback]

:ld4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[2], [Xn|SP] [, wback]

:ld4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[3], [Xn|SP] [, wback]

:ld4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = *:4 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.D, Vt2.D, Vt3.D, Vt4.D}[0], [Xn|SP] [, wback]

:ld4 {vVt^".D", vVtt^".D", vVttt^".D", vVtttt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# ld4 {Vt.D, Vt2.D, Vt3.D, Vt4.D}[1], [Xn|SP] [, wback]

:ld4 {vVt^".D", vVtt^".D", vVttt^".D", vVtttt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = *:8 tmp_ldXn;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60e000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.8B, Vt2.8B, Vt3.8B, Vt4.8B}, [Xn|SP] [, wback]

:ld4r {vVt^".8B", vVtt^".8B", vVttt^".8B", vVtttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60e400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.4H, Vt2.4H, Vt3.4H, Vt4.4H}, [Xn|SP] [, wback]

:ld4r {vVt^".4H", vVtt^".4H", vVttt^".4H", vVtttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60e800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.2S, Vt2.2S, Vt3.2S, Vt4.2S}, [Xn|SP] [, wback]

:ld4r {vVt^".2S", vVtt^".2S", vVttt^".2S", vVtttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x0d60ec00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.1D, Vt2.1D, Vt3.1D, Vt4.1D}, [Xn|SP] [, wback]

:ld4r {vVt^".1D", vVtt^".1D", vVttt^".1D", vVtttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR64 & Zt & vVtt & Rtt_VPR64 & Ztt & vVttt & Rttt_VPR64 & Zttt & vVtttt & Rtttt_VPR64 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60e000/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.16B, Vt2.16B, Vt3.16B, Vt4.16B}, [Xn|SP] [, wback]

:ld4r {vVt^".16B", vVtt^".16B", vVttt^".16B", vVtttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:1 = 0;
	local tmpa:4 = 0;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	tmpv = *:1 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	* [register]:1 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	* [register]:1 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60e400/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.8H, Vt2.8H, Vt3.8H, Vt4.8H}, [Xn|SP] [, wback]

:ld4r {vVt^".8H", vVtt^".8H", vVttt^".8H", vVtttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:2 = 0;
	local tmpa:4 = 0;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	tmpv = *:2 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	* [register]:2 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	* [register]:2 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60e800/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.4S, Vt2.4S, Vt3.4S, Vt4.4S}, [Xn|SP] [, wback]

:ld4r {vVt^".4S", vVtt^".4S", vVttt^".4S", vVtttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:4 = 0;
	local tmpa:4 = 0;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	tmpv = *:4 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	* [register]:4 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	* [register]:4 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0d60e000/mask=xbffff000
# C7.2.173 LD4R page C7-1397 line 81315 MATCH x0de0e000/mask=xbfe0f000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0d602000/mask=xbfff2000
# C7.2.172 LD4 (single structure) page C7-1393 line 81068 MATCH x0de02000/mask=xbfe02000
# CONSTRUCT x4d60ec00/mask=xff60fc00 MATCHED 4 DOCUMENTED OPCODES
# ld4r {Vt.2D, Vt2.2D, Vt3.2D, Vt4.2D}, [Xn|SP] [, wback]

:ld4r {vVt^".2D", vVtt^".2D", vVttt^".2D", vVtttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=1 & b_21=1 & b_1315=0b111 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Zt & vVtt & Rtt_VPR128 & Ztt & vVttt & Rttt_VPR128 & Zttt & vVtttt & Rtttt_VPR128 & Ztttt & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpv:8 = 0;
	local tmpa:4 = 0;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	tmpv = *:8 tmp_ldXn;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	* [register]:8 tmpa = tmpv;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	* [register]:8 tmpa = tmpv;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c002000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8B, Vt2.8B, Vt3.8B, Vt4.8B}, [Xn|SP] [, wback]

:st1 {vVt^".8B", vVtt^".8B", vVttt^".8B", vVtttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c002400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4H, Vt2.4H, Vt3.4H, Vt4.4H}, [Xn|SP] [, wback]

:st1 {vVt^".4H", vVtt^".4H", vVttt^".4H", vVtttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c002800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2S, Vt2.2S, Vt3.2S, Vt4.2S}, [Xn|SP] [, wback]

:st1 {vVt^".2S", vVtt^".2S", vVttt^".2S", vVtttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c002c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.1D, Vt2.1D, Vt3.1D, Vt4.1D}, [Xn|SP] [, wback]

:st1 {vVt^".1D", vVtt^".1D", vVttt^".1D", vVtttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b11 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c002000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.16B, Vt2.16B, Vt3.16B, Vt4.16B}, [Xn|SP] [, wback]

:st1 {vVt^".16B", vVtt^".16B", vVttt^".16B", vVtttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c002400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8H, Vt2.8H, Vt3.8H, Vt4.8H}, [Xn|SP] [, wback]

:st1 {vVt^".8H", vVtt^".8H", vVttt^".8H", vVtttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c002800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4S, Vt2.4S, Vt3.4S, Vt4.4S}, [Xn|SP] [, wback]

:st1 {vVt^".4S", vVtt^".4S", vVttt^".4S", vVtttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c002c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2D, Vt2.2D, Vt3.2D, Vt4.2D}, [Xn|SP] [, wback]

:st1 {vVt^".2D", vVtt^".2D", vVttt^".2D", vVtttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0010 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c006000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8B, Vt2.8B, Vt3.8B}, [Xn|SP] [, wback]

:st1 {vVt^".8B", vVtt^".8B", vVttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c006400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4H, Vt2.4H, Vt3.4H}, [Xn|SP] [, wback]

:st1 {vVt^".4H", vVtt^".4H", vVttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c006800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2S, Vt2.2S, Vt3.2S}, [Xn|SP] [, wback]

:st1 {vVt^".2S", vVtt^".2S", vVttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c006c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.1D, Vt2.1D, Vt3.1D}, [Xn|SP] [, wback]

:st1 {vVt^".1D", vVtt^".1D", vVttt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b11 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c006000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.16B, Vt2.16B, Vt3.16B}, [Xn|SP] [, wback]

:st1 {vVt^".16B", vVtt^".16B", vVttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c006400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8H, Vt2.8H, Vt3.8H}, [Xn|SP] [, wback]

:st1 {vVt^".8H", vVtt^".8H", vVttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c006800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4S, Vt2.4S, Vt3.4S}, [Xn|SP] [, wback]

:st1 {vVt^".4S", vVtt^".4S", vVttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c006c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2D, Vt2.2D, Vt3.2D}, [Xn|SP] [, wback]

:st1 {vVt^".2D", vVtt^".2D", vVttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0110 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c007000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8B}, [Xn|SP] [, wback]

:st1 {vVt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b00 & vVt & Rt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c007400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4H}, [Xn|SP] [, wback]

:st1 {vVt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b01 & vVt & Rt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c007800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2S}, [Xn|SP] [, wback]

:st1 {vVt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b10 & vVt & Rt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c007c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.1D}, [Xn|SP] [, wback]

:st1 {vVt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b11 & vVt & Rt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c007000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.16B}, [Xn|SP] [, wback]

:st1 {vVt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c007400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8H}, [Xn|SP] [, wback]

:st1 {vVt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c007800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4S}, [Xn|SP] [, wback]

:st1 {vVt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c007c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2D}, [Xn|SP] [, wback]

:st1 {vVt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0111 & b_1011=0b11 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c00a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8B, Vt2.8B}, [Xn|SP] [, wback]

:st1 {vVt^".8B", vVtt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c00a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4H, Vt2.4H}, [Xn|SP] [, wback]

:st1 {vVt^".4H", vVtt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c00a800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2S, Vt2.2S}, [Xn|SP] [, wback]

:st1 {vVt^".2S", vVtt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x0c00ac00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.1D, Vt2.1D}, [Xn|SP] [, wback]

:st1 {vVt^".1D", vVtt^".1D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b11 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR64, 0, 8, 8);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c00a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.16B, Vt2.16B}, [Xn|SP] [, wback]

:st1 {vVt^".16B", vVtt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c00a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.8H, Vt2.8H}, [Xn|SP] [, wback]

:st1 {vVt^".8H", vVtt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c00a800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.4S, Vt2.4S}, [Xn|SP] [, wback]

:st1 {vVt^".4S", vVtt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c002000/mask=xbfff2000
# C7.2.305 ST1 (multiple structures) page C7-1666 line 96374 MATCH x0c802000/mask=xbfe02000
# CONSTRUCT x4c00ac00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.2D, Vt2.2D}, [Xn|SP] [, wback]

:st1 {vVt^".2D", vVtt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1010 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d000000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[0], [Xn|SP] [, wback]

:st1 {vVt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d000400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[1], [Xn|SP] [, wback]

:st1 {vVt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d000800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[2], [Xn|SP] [, wback]

:st1 {vVt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d000c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[3], [Xn|SP] [, wback]

:st1 {vVt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d001000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[4], [Xn|SP] [, wback]

:st1 {vVt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d001400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[5], [Xn|SP] [, wback]

:st1 {vVt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d001800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[6], [Xn|SP] [, wback]

:st1 {vVt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d001c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[7], [Xn|SP] [, wback]

:st1 {vVt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d000000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[8], [Xn|SP] [, wback]

:st1 {vVt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d000400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[9], [Xn|SP] [, wback]

:st1 {vVt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d000800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[10], [Xn|SP] [, wback]

:st1 {vVt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d000c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[11], [Xn|SP] [, wback]

:st1 {vVt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d001000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[12], [Xn|SP] [, wback]

:st1 {vVt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d001400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[13], [Xn|SP] [, wback]

:st1 {vVt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d001800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[14], [Xn|SP] [, wback]

:st1 {vVt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d001c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.B}[15], [Xn|SP] [, wback]

:st1 {vVt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d004000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[0], [Xn|SP] [, wback]

:st1 {vVt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d004800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[1], [Xn|SP] [, wback]

:st1 {vVt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d005000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[2], [Xn|SP] [, wback]

:st1 {vVt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d005800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[3], [Xn|SP] [, wback]

:st1 {vVt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d004000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[4], [Xn|SP] [, wback]

:st1 {vVt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d004800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[5], [Xn|SP] [, wback]

:st1 {vVt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d005000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[6], [Xn|SP] [, wback]

:st1 {vVt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d005800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.H}[7], [Xn|SP] [, wback]

:st1 {vVt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d008000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.S}[0], [Xn|SP] [, wback]

:st1 {vVt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d009000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.S}[1], [Xn|SP] [, wback]

:st1 {vVt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d008000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.S}[2], [Xn|SP] [, wback]

:st1 {vVt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d009000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.S}[3], [Xn|SP] [, wback]

:st1 {vVt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x0d008400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.D}[0], [Xn|SP] [, wback]

:st1 {vVt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d000000/mask=xbfff2000
# C7.2.306 ST1 (single structure) page C7-1670 line 96624 MATCH x0d800000/mask=xbfe02000
# CONSTRUCT x4d008400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st1 {Vt.D}[1], [Xn|SP] [, wback]

:st1 {vVt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x0c008000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.8B, Vt2.8B}, [Xn|SP] [, wback]

:st2 {vVt^".8B", vVtt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x0c008400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.4H, Vt2.4H}, [Xn|SP] [, wback]

:st2 {vVt^".4H", vVtt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x0c008800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.2S, Vt2.2S}, [Xn|SP] [, wback]

:st2 {vVt^".2S", vVtt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x4c008000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.16B, Vt2.16B}, [Xn|SP] [, wback]

:st2 {vVt^".16B", vVtt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x4c008400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.8H, Vt2.8H}, [Xn|SP] [, wback]

:st2 {vVt^".8H", vVtt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x4c008800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.4S, Vt2.4S}, [Xn|SP] [, wback]

:st2 {vVt^".4S", vVtt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c008000/mask=xbffff000
# C7.2.307 ST2 (multiple structures) page C7-1674 line 96864 MATCH x0c808000/mask=xbfe0f000
# CONSTRUCT x4c008c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.2D, Vt2.2D}, [Xn|SP] [, wback]

:st2 {vVt^".2D", vVtt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b1000 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d200000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[0], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d200400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[1], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d200800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[2], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d200c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[3], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d201000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[4], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d201400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[5], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d201800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[6], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d201c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[7], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d200000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[8], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d200400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[9], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d200800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[10], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d200c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[11], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d201000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[12], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d201400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[13], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d201800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[14], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d201c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.B, Vt2.B}[15], [Xn|SP] [, wback]

:st2 {vVt^".B", vVtt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b000 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d204000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[0], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d204800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[1], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d205000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[2], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d205800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[3], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d204000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[4], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d204800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[5], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d205000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[6], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d205800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.H, Vt2.H}[7], [Xn|SP] [, wback]

:st2 {vVt^".H", vVtt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b010 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d208000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.S, Vt2.S}[0], [Xn|SP] [, wback]

:st2 {vVt^".S", vVtt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d209000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.S, Vt2.S}[1], [Xn|SP] [, wback]

:st2 {vVt^".S", vVtt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d208000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.S, Vt2.S}[2], [Xn|SP] [, wback]

:st2 {vVt^".S", vVtt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d209000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.S, Vt2.S}[3], [Xn|SP] [, wback]

:st2 {vVt^".S", vVtt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x0d208400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.D, Vt2.D}[0], [Xn|SP] [, wback]

:st2 {vVt^".D", vVtt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0d200000/mask=xbfff2000
# C7.2.308 ST2 (single structure) page C7-1677 line 97032 MATCH x0da00000/mask=xbfe02000
# CONSTRUCT x4d208400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st2 {Vt.D, Vt2.D}[1], [Xn|SP] [, wback]

:st2 {vVt^".D", vVtt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b100 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x0c004000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.8B, Vt2.8B, Vt3.8B}, [Xn|SP] [, wback]

:st3 {vVt^".8B", vVtt^".8B", vVttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x0c004400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.4H, Vt2.4H, Vt3.4H}, [Xn|SP] [, wback]

:st3 {vVt^".4H", vVtt^".4H", vVttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x0c004800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.2S, Vt2.2S, Vt3.2S}, [Xn|SP] [, wback]

:st3 {vVt^".2S", vVtt^".2S", vVttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x4c004000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.16B, Vt2.16B, Vt3.16B}, [Xn|SP] [, wback]

:st3 {vVt^".16B", vVtt^".16B", vVttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x4c004400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.8H, Vt2.8H, Vt3.8H}, [Xn|SP] [, wback]

:st3 {vVt^".8H", vVtt^".8H", vVttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x4c004800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.4S, Vt2.4S, Vt3.4S}, [Xn|SP] [, wback]

:st3 {vVt^".4S", vVtt^".4S", vVttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c004000/mask=xbffff000
# C7.2.309 ST3 (multiple structures) page C7-1681 line 97274 MATCH x0c804000/mask=xbfe0f000
# CONSTRUCT x4c004c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.2D, Vt2.2D, Vt3.2D}, [Xn|SP] [, wback]

:st3 {vVt^".2D", vVtt^".2D", vVttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0100 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d002000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[0], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d002400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[1], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d002800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[2], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d002c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[3], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d003000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[4], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d003400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[5], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d003800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[6], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d003c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[7], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d002000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[8], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d002400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[9], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d002800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[10], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d002c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[11], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d003000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[12], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d003400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[13], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d003800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[14], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d003c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.B, Vt2.B, Vt3.B}[15], [Xn|SP] [, wback]

:st3 {vVt^".B", vVtt^".B", vVttt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d006000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[0], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d006800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[1], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d007000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[2], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d007800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[3], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d006000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[4], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d006800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[5], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d007000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[6], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d007800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.H, Vt2.H, Vt3.H}[7], [Xn|SP] [, wback]

:st3 {vVt^".H", vVtt^".H", vVttt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d00a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.S, Vt2.S, Vt3.S}[0], [Xn|SP] [, wback]

:st3 {vVt^".S", vVtt^".S", vVttt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d00b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.S, Vt2.S, Vt3.S}[1], [Xn|SP] [, wback]

:st3 {vVt^".S", vVtt^".S", vVttt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d00a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.S, Vt2.S, Vt3.S}[2], [Xn|SP] [, wback]

:st3 {vVt^".S", vVtt^".S", vVttt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d00b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.S, Vt2.S, Vt3.S}[3], [Xn|SP] [, wback]

:st3 {vVt^".S", vVtt^".S", vVttt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x0d00a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.D, Vt2.D, Vt3.D}[0], [Xn|SP] [, wback]

:st3 {vVt^".D", vVtt^".D", vVttt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d002000/mask=xbfff2000
# C7.2.310 ST3 (single structure) page C7-1684 line 97444 MATCH x0d802000/mask=xbfe02000
# CONSTRUCT x4d00a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st3 {Vt.D, Vt2.D, Vt3.D}[1], [Xn|SP] [, wback]

:st3 {vVt^".D", vVtt^".D", vVttt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=0 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x0c000000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.8B, Vt2.8B, Vt3.8B, Vt4.8B}, [Xn|SP] [, wback]

:st4 {vVt^".8B", vVtt^".8B", vVttt^".8B", vVtttt^".8B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b00 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 4, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 5, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 6, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR64, 7, 1, 8);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x0c000400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.4H, Vt2.4H, Vt3.4H, Vt4.4H}, [Xn|SP] [, wback]

:st4 {vVt^".4H", vVtt^".4H", vVttt^".4H", vVtttt^".4H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b01 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 2, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR64, 3, 2, 8);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x0c000800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.2S, Vt2.2S, Vt3.2S, Vt4.2S}, [Xn|SP] [, wback]

:st4 {vVt^".2S", vVtt^".2S", vVttt^".2S", vVtttt^".2S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b10 & vVt & Rt_VPR64 & vVtt & Rtt_VPR64 & vVttt & Rttt_VPR64 & vVtttt & Rtttt_VPR64 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 0, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR64, 1, 4, 8);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x4c000000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.16B, Vt2.16B, Vt3.16B, Vt4.16B}, [Xn|SP] [, wback]

:st4 {vVt^".16B", vVtt^".16B", vVttt^".16B", vVtttt^".16B"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x4c000400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.8H, Vt2.8H, Vt3.8H, Vt4.8H}, [Xn|SP] [, wback]

:st4 {vVt^".8H", vVtt^".8H", vVttt^".8H", vVtttt^".8H"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x4c000800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.4S, Vt2.4S, Vt3.4S, Vt4.4S}, [Xn|SP] [, wback]

:st4 {vVt^".4S", vVtt^".4S", vVttt^".4S", vVtttt^".4S"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c000000/mask=xbffff000
# C7.2.311 ST4 (multiple structures) page C7-1688 line 97688 MATCH x0c800000/mask=xbfe0f000
# CONSTRUCT x4c000c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.2D, Vt2.2D, Vt3.2D, Vt4.2D}, [Xn|SP] [, wback]

:st4 {vVt^".2D", vVtt^".2D", vVttt^".2D", vVtttt^".2D"}, [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001100 & b_22=0 & b_21=0 & b_1215=0b0000 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d202000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[0], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d202400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[1], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d202800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[2], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d202c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[3], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d203000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[4], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d203400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[5], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d203800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[6], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d203c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[7], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d202000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[8], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[8], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 8, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d202400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[9], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[9], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 9, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d202800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[10], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[10], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 10, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d202c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[11], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[11], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=0 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 11, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d203000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[12], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[12], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 12, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d203400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[13], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[13], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 13, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d203800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[14], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[14], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 14, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d203c00/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.B, Vt2.B, Vt3.B, Vt4.B}[15], [Xn|SP] [, wback]

:st4 {vVt^".B", vVtt^".B", vVttt^".B", vVtttt^".B"}[15], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b001 & b_12=1 & b_1011=0b11 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	simd_address_at(tmpa, Rtttt_VPR128, 15, 1, 16);
	*:1 tmp_ldXn = * [register]:1 tmpa;
	tmp_ldXn = tmp_ldXn + 1;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d206000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[0], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d206800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[1], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d207000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[2], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d207800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[3], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d206000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[4], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[4], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 4, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d206800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[5], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[5], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=0 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 5, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d207000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[6], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[6], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 6, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d207800/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.H, Vt2.H, Vt3.H, Vt4.H}[7], [Xn|SP] [, wback]

:st4 {vVt^".H", vVtt^".H", vVttt^".H", vVtttt^".H"}[7], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b011 & b_12=1 & b_1011=0b10 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	simd_address_at(tmpa, Rtttt_VPR128, 7, 2, 16);
	*:2 tmp_ldXn = * [register]:2 tmpa;
	tmp_ldXn = tmp_ldXn + 2;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d20a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[0], [Xn|SP] [, wback]

:st4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d20b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[1], [Xn|SP] [, wback]

:st4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d20a000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[2], [Xn|SP] [, wback]

:st4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[2], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 2, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d20b000/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.S, Vt2.S, Vt3.S, Vt4.S}[3], [Xn|SP] [, wback]

:st4 {vVt^".S", vVtt^".S", vVttt^".S", vVtttt^".S"}[3], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=1 & b_1011=0b00 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	simd_address_at(tmpa, Rtttt_VPR128, 3, 4, 16);
	*:4 tmp_ldXn = * [register]:4 tmpa;
	tmp_ldXn = tmp_ldXn + 4;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x0d20a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.D, Vt2.D, Vt3.D, Vt4.D}[0], [Xn|SP] [, wback]

:st4 {vVt^".D", vVtt^".D", vVttt^".D", vVtttt^".D"}[0], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=0 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 0, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0d202000/mask=xbfff2000
# C7.2.312 ST4 (single structure) page C7-1691 line 97859 MATCH x0da02000/mask=xbfe02000
# CONSTRUCT x4d20a400/mask=xff60fc00 MATCHED 2 DOCUMENTED OPCODES
# st4 {Vt.D, Vt2.D, Vt3.D, Vt4.D}[1], [Xn|SP] [, wback]

:st4 {vVt^".D", vVtt^".D", vVttt^".D", vVtttt^".D"}[1], [Rn_GPR64xsp]^ldst_wback
is b_31=0 & b_30=1 & b_2429=0b001101 & b_22=0 & b_21=1 & b_1315=0b101 & b_12=0 & b_1011=0b01 & vVt & Rt_VPR128 & vVtt & Rtt_VPR128 & vVttt & Rttt_VPR128 & vVtttt & Rtttt_VPR128 & Rn_GPR64xsp & ldst_wback & Rm_GPR64
{
	tmp_ldXn = Rn_GPR64xsp;
	local tmpa:4 = 0;
	simd_address_at(tmpa, Rt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	simd_address_at(tmpa, Rtttt_VPR128, 1, 8, 16);
	*:8 tmp_ldXn = * [register]:8 tmpa;
	tmp_ldXn = tmp_ldXn + 8;
	# neglected zexts
	build ldst_wback;
}

