.macro iterate_regs_types macro_name reg .irp index, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 .irp regs, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 \macro_name \regs b \index \reg .endr .endr .irp index, 0,1,2,3,4,5,6,7 .irp regs, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 \macro_name \regs h \index \reg .endr .endr .irp index, 0,1,2,3 .irp regs, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 \macro_name \regs s \index \reg .endr .endr .endm .macro ins_mov_main reg_num type index xw_reg ins v\reg_num\().\type[\index], \xw_reg\reg_num mov v\reg_num\().\type[\index], \xw_reg\reg_num .endm .macro ins_mov_element reg_num type index null ins v\reg_num\().\type[\index], v\reg_num\().\type[\index] mov v\reg_num\().\type[\index], v\reg_num\().\type[\index] .endm .text iterate_regs_types macro_name=ins_mov_main reg=w iterate_regs_types macro_name=ins_mov_element .irp reg, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 ins v\reg\().d[0], x\reg mov v\reg\().d[0], x\reg ins v\reg\().d[1], x\reg mov v\reg\().d[1], x\reg ins v\reg\().d[0], v\reg\().d[1] mov v\reg\().d[0], v\reg\().d[1] ins v\reg\().d[1], v\reg\().d[0] mov v\reg\().d[1], v\reg\().d[0] .endr