PATCH 5/6][Binutils] aarch64: Add SVE2.1 fmin and fmax instructions.
Hi, This patch add support for SVE2.1 instruction faddqv, fmaxnmqv, fmaxqv, fminnmqv and fminqv. Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath.
This commit is contained in:
parent
39092c7a1f
commit
b34104edab
@ -55,3 +55,28 @@
|
||||
.*: Error: selected processor does not support `extq z4.b,z4.b,z12.b\[1\]'
|
||||
.*: Error: selected processor does not support `extq z8.b,z8.b,z7.b\[4\]'
|
||||
.*: Error: selected processor does not support `extq z16.b,z16.b,z1.b\[8\]'
|
||||
.*: Error: selected processor does not support `faddqv v1.8h,p1,z8.h'
|
||||
.*: Error: selected processor does not support `faddqv v2.4s,p2,z4.s'
|
||||
.*: Error: selected processor does not support `faddqv v4.2d,p3,z2.d'
|
||||
.*: Error: selected processor does not support `faddqv v8.2d,p4,z1.d'
|
||||
.*: Error: selected processor does not support `faddqv v16.4s,p7,z0.s'
|
||||
.*: Error: selected processor does not support `fmaxnmqv v1.8h,p1,z8.h'
|
||||
.*: Error: selected processor does not support `fmaxnmqv v2.4s,p2,z4.s'
|
||||
.*: Error: selected processor does not support `fmaxnmqv v4.2d,p3,z2.d'
|
||||
.*: Error: selected processor does not support `fmaxnmqv v8.2d,p4,z1.d'
|
||||
.*: Error: selected processor does not support `fmaxnmqv v16.4s,p7,z0.s'
|
||||
.*: Error: selected processor does not support `fmaxqv v1.8h,p1,z8.h'
|
||||
.*: Error: selected processor does not support `fmaxqv v2.4s,p2,z4.s'
|
||||
.*: Error: selected processor does not support `fmaxqv v4.2d,p3,z2.d'
|
||||
.*: Error: selected processor does not support `fmaxqv v8.2d,p4,z1.d'
|
||||
.*: Error: selected processor does not support `fmaxqv v16.4s,p7,z0.s'
|
||||
.*: Error: selected processor does not support `fminnmqv v1.8h,p1,z8.h'
|
||||
.*: Error: selected processor does not support `fminnmqv v2.4s,p2,z4.s'
|
||||
.*: Error: selected processor does not support `fminnmqv v4.2d,p3,z2.d'
|
||||
.*: Error: selected processor does not support `fminnmqv v8.2d,p4,z1.d'
|
||||
.*: Error: selected processor does not support `fminnmqv v16.4s,p7,z0.s'
|
||||
.*: Error: selected processor does not support `fminqv v1.8h,p1,z8.h'
|
||||
.*: Error: selected processor does not support `fminqv v2.4s,p2,z4.s'
|
||||
.*: Error: selected processor does not support `fminqv v4.2d,p3,z2.d'
|
||||
.*: Error: selected processor does not support `fminqv v8.2d,p4,z1.d'
|
||||
.*: Error: selected processor does not support `fminqv v16.4s,p7,z0.s'
|
||||
|
@ -64,3 +64,28 @@
|
||||
.*: 056c2444 extq z4.b, z4.b, z12.b\[1\]
|
||||
.*: 05672508 extq z8.b, z8.b, z7.b\[4\]
|
||||
.*: 05612610 extq z16.b, z16.b, z1.b\[8\]
|
||||
.*: 6450a501 faddqv v1.8h, p1, z8.h
|
||||
.*: 6490a882 faddqv v2.4s, p2, z4.s
|
||||
.*: 64d0ac44 faddqv v4.2d, p3, z2.d
|
||||
.*: 64d0b028 faddqv v8.2d, p4, z1.d
|
||||
.*: 6490bc10 faddqv v16.4s, p7, z0.s
|
||||
.*: 6454a501 fmaxnmqv v1.8h, p1, z8.h
|
||||
.*: 6494a882 fmaxnmqv v2.4s, p2, z4.s
|
||||
.*: 64d4ac44 fmaxnmqv v4.2d, p3, z2.d
|
||||
.*: 64d4b028 fmaxnmqv v8.2d, p4, z1.d
|
||||
.*: 6494bc10 fmaxnmqv v16.4s, p7, z0.s
|
||||
.*: 6456a501 fmaxqv v1.8h, p1, z8.h
|
||||
.*: 6496a882 fmaxqv v2.4s, p2, z4.s
|
||||
.*: 64d6ac44 fmaxqv v4.2d, p3, z2.d
|
||||
.*: 64d6b028 fmaxqv v8.2d, p4, z1.d
|
||||
.*: 6496bc10 fmaxqv v16.4s, p7, z0.s
|
||||
.*: 6455a501 fminnmqv v1.8h, p1, z8.h
|
||||
.*: 6495a882 fminnmqv v2.4s, p2, z4.s
|
||||
.*: 64d5ac44 fminnmqv v4.2d, p3, z2.d
|
||||
.*: 64d5b028 fminnmqv v8.2d, p4, z1.d
|
||||
.*: 6495bc10 fminnmqv v16.4s, p7, z0.s
|
||||
.*: 6457a501 fminqv v1.8h, p1, z8.h
|
||||
.*: 6497a882 fminqv v2.4s, p2, z4.s
|
||||
.*: 64d7ac44 fminqv v4.2d, p3, z2.d
|
||||
.*: 64d7b028 fminqv v8.2d, p4, z1.d
|
||||
.*: 6497bc10 fminqv v16.4s, p7, z0.s
|
||||
|
@ -61,3 +61,32 @@ extq z2.b, z2.b, z5.b[3]
|
||||
extq z4.b, z4.b, z12.b[1]
|
||||
extq z8.b, z8.b, z7.b[4]
|
||||
extq z16.b, z16.b, z1.b[8]
|
||||
faddqv v1.8h, p1, z8.h
|
||||
faddqv v2.4s, p2, z4.s
|
||||
faddqv v4.2d, p3, z2.d
|
||||
faddqv v8.2d, p4, z1.d
|
||||
faddqv v16.4s, p7, z0.s
|
||||
|
||||
fmaxnmqv v1.8h, p1, z8.h
|
||||
fmaxnmqv v2.4s, p2, z4.s
|
||||
fmaxnmqv v4.2d, p3, z2.d
|
||||
fmaxnmqv v8.2d, p4, z1.d
|
||||
fmaxnmqv v16.4s, p7, z0.s
|
||||
|
||||
fmaxqv v1.8h, p1, z8.h
|
||||
fmaxqv v2.4s, p2, z4.s
|
||||
fmaxqv v4.2d, p3, z2.d
|
||||
fmaxqv v8.2d, p4, z1.d
|
||||
fmaxqv v16.4s, p7, z0.s
|
||||
|
||||
fminnmqv v1.8h, p1, z8.h
|
||||
fminnmqv v2.4s, p2, z4.s
|
||||
fminnmqv v4.2d, p3, z2.d
|
||||
fminnmqv v8.2d, p4, z1.d
|
||||
fminnmqv v16.4s, p7, z0.s
|
||||
|
||||
fminqv v1.8h, p1, z8.h
|
||||
fminqv v2.4s, p2, z4.s
|
||||
fminqv v4.2d, p3, z2.d
|
||||
fminqv v8.2d, p4, z1.d
|
||||
fminqv v16.4s, p7, z0.s
|
||||
|
@ -1922,6 +1922,12 @@
|
||||
QLF3(V_4S,NIL,S_S), \
|
||||
QLF3(V_2D,NIL,S_D), \
|
||||
}
|
||||
#define OP_SVE_vUS_HSD_HSD \
|
||||
{ \
|
||||
QLF3(V_8H,NIL,S_H), \
|
||||
QLF3(V_4S,NIL,S_S), \
|
||||
QLF3(V_2D,NIL,S_D), \
|
||||
}
|
||||
#define OP_SVE_VMV_SD \
|
||||
{ \
|
||||
QLF3(S_S,P_M,S_S), \
|
||||
@ -6339,6 +6345,12 @@ const struct aarch64_opcode aarch64_opcode_table[] =
|
||||
SVE2p1_INSNC("uminqv",0x040f2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
SVE2p1_INSNC("eorqv",0x041d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
|
||||
SVE2p1_INSNC("faddqv",0x6410a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
SVE2p1_INSNC("fmaxnmqv",0x6414a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
SVE2p1_INSNC("fmaxqv",0x6416a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
SVE2p1_INSNC("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
SVE2p1_INSNC("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0),
|
||||
|
||||
SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index1, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0),
|
||||
SVE2p1_INSN("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zd, SVE_Zm_imm4), OP_SVE_BBB, 0, 0),
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user