Skip to content

Commit 1d1c54a

Browse files
committed
Moved definition of instrunction class
1 parent cbf1133 commit 1d1c54a

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

clang/include/clang/Basic/arm_neon.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2127,7 +2127,7 @@ let ArchGuard = "defined(__aarch64__)", TargetGuard = "neon,faminmax" in {
21272127
def FAMAX : WInst<"vamax", "...", "fhQdQfQh">;
21282128
}
21292129

2130-
let ArchGuard = "defined(__aarch64__)", TargetGuard = "fp8" in {
2130+
let ArchGuard = "defined(__aarch64__)", TargetGuard = "fp8,neon" in {
21312131
// fscale
21322132
def FSCALE_V128 : WInst<"vscale", "..(.S)", "QdQfQh">;
21332133
def FSCALE_V64 : WInst<"vscale", "(.q)(.q)(.qS)", "fh">;

llvm/lib/Target/AArch64/AArch64InstrFormats.td

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5974,6 +5974,7 @@ multiclass SIMDThreeSameVectorB<bit U, bits<5> opc, string asm,
59745974
(OpNode (v16i8 V128:$Rn), (v16i8 V128:$Rm)))]>;
59755975
}
59765976

5977+
// As above, but only floating point elements supported.
59775978
let mayRaiseFPException = 1, Uses = [FPCR] in
59785979
multiclass SIMDThreeSameVectorFP<bit U, bit S, bits<3> opc,
59795980
string asm, SDPatternOperator OpNode> {
@@ -5996,27 +5997,6 @@ multiclass SIMDThreeSameVectorFP<bit U, bit S, bits<3> opc,
59965997
[(set (v2f64 V128:$Rd), (OpNode (v2f64 V128:$Rn), (v2f64 V128:$Rm)))]>;
59975998
}
59985999

5999-
// As above, but only floating point elements supported.
6000-
let mayRaiseFPException = 1, Uses = [FPCR] in
6001-
multiclass SIMDThreeVectorFP<bit U, bit S, bits<3> opc,
6002-
string asm, SDPatternOperator OpNode> {
6003-
def v4f16 : BaseSIMDThreeSameVector<0, U, {S,0b10}, {0b00,opc}, V64,
6004-
asm, ".4h",
6005-
[(set (v4f16 V64:$Rd), (OpNode (v4f16 V64:$Rn), (v4i16 V64:$Rm)))]>;
6006-
def v8f16 : BaseSIMDThreeSameVector<1, U, {S,0b10}, {0b00,opc}, V128,
6007-
asm, ".8h",
6008-
[(set (v8f16 V128:$Rd), (OpNode (v8f16 V128:$Rn), (v8i16 V128:$Rm)))]>;
6009-
def v2f32 : BaseSIMDThreeSameVector<0, U, {S,0b01}, {0b11,opc}, V64,
6010-
asm, ".2s",
6011-
[(set (v2f32 V64:$Rd), (OpNode (v2f32 V64:$Rn), (v2i32 V64:$Rm)))]>;
6012-
def v4f32 : BaseSIMDThreeSameVector<1, U, {S,0b01}, {0b11,opc}, V128,
6013-
asm, ".4s",
6014-
[(set (v4f32 V128:$Rd), (OpNode (v4f32 V128:$Rn), (v4i32 V128:$Rm)))]>;
6015-
def v2f64 : BaseSIMDThreeSameVector<1, U, {S,0b11}, {0b11,opc}, V128,
6016-
asm, ".2d",
6017-
[(set (v2f64 V128:$Rd), (OpNode (v2f64 V128:$Rn), (v2i64 V128:$Rm)))]>;
6018-
}
6019-
60206000
let mayRaiseFPException = 1, Uses = [FPCR] in
60216001
multiclass SIMDThreeSameVectorFPCmp<bit U, bit S, bits<3> opc,
60226002
string asm,
@@ -6263,6 +6243,26 @@ multiclass SIMDThreeSameVectorDOT4<string asm> {
62636243
V128, v4f32, v16i8, null_frag>;
62646244
}
62656245

6246+
let mayRaiseFPException = 1, Uses = [FPCR] in
6247+
multiclass SIMDThreeVectorFscale<bit U, bit S, bits<3> opc,
6248+
string asm, SDPatternOperator OpNode> {
6249+
def v4f16 : BaseSIMDThreeSameVector<0, U, {S,0b10}, {0b00,opc}, V64,
6250+
asm, ".4h",
6251+
[(set (v4f16 V64:$Rd), (OpNode (v4f16 V64:$Rn), (v4i16 V64:$Rm)))]>;
6252+
def v8f16 : BaseSIMDThreeSameVector<1, U, {S,0b10}, {0b00,opc}, V128,
6253+
asm, ".8h",
6254+
[(set (v8f16 V128:$Rd), (OpNode (v8f16 V128:$Rn), (v8i16 V128:$Rm)))]>;
6255+
def v2f32 : BaseSIMDThreeSameVector<0, U, {S,0b01}, {0b11,opc}, V64,
6256+
asm, ".2s",
6257+
[(set (v2f32 V64:$Rd), (OpNode (v2f32 V64:$Rn), (v2i32 V64:$Rm)))]>;
6258+
def v4f32 : BaseSIMDThreeSameVector<1, U, {S,0b01}, {0b11,opc}, V128,
6259+
asm, ".4s",
6260+
[(set (v4f32 V128:$Rd), (OpNode (v4f32 V128:$Rn), (v4i32 V128:$Rm)))]>;
6261+
def v2f64 : BaseSIMDThreeSameVector<1, U, {S,0b11}, {0b11,opc}, V128,
6262+
asm, ".2d",
6263+
[(set (v2f64 V128:$Rd), (OpNode (v2f64 V128:$Rn), (v2i64 V128:$Rm)))]>;
6264+
}
6265+
62666266
//----------------------------------------------------------------------------
62676267
// AdvSIMD two register vector instructions.
62686268
//----------------------------------------------------------------------------

llvm/lib/Target/AArch64/AArch64InstrInfo.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10136,7 +10136,7 @@ let Uses = [FPMR, FPCR], Predicates = [HasFP8] in {
1013610136
defm BF2CVTL : SIMDMixedTwoVectorFP8<0b11, "bf2cvtl">;
1013710137
defm FCVTN_F16_F8 : SIMDThreeSameSizeVectorCvt<"fcvtn">;
1013810138
defm FCVTN_F32_F8 : SIMDThreeVectorCvt<"fcvtn">;
10139-
defm FSCALE : SIMDThreeVectorFP<0b1, 0b1, 0b111, "fscale", int_aarch64_neon_fp8_fscale>;
10139+
defm FSCALE : SIMDThreeVectorFscale<0b1, 0b1, 0b111, "fscale", int_aarch64_neon_fp8_fscale>;
1014010140
} // End let Predicates = [HasFP8]
1014110141

1014210142
// fminimum(abs(a), abs(b)) -> famin(a, b)

0 commit comments

Comments
 (0)