Skip to content

Commit c937aa2

Browse files
androm3dagithub-actions[bot]
authored andcommitted
Automerge: Revert "[Hexagon] Passes for widening vector operations and shuffle o… (#171647)
…pt (#169559)" This reverts commit 4da31b6.
2 parents fefc579 + 48d942c commit c937aa2

37 files changed

+50
-4336
lines changed

llvm/include/llvm/IR/IntrinsicsHexagon.td

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//
1515
// All Hexagon intrinsics start with "llvm.hexagon.".
1616
let TargetPrefix = "hexagon" in {
17-
/// Hexagon_Intrinsic - Base class for majority of Hexagon intrinsics.
17+
/// Hexagon_Intrinsic - Base class for the majority of Hexagon intrinsics.
1818
class Hexagon_Intrinsic<string GCCIntSuffix, list<LLVMType> ret_types,
1919
list<LLVMType> param_types,
2020
list<IntrinsicProperty> properties>
@@ -435,84 +435,6 @@ def int_hexagon_V6_vmaskedstorenq_128B: Hexagon_custom_vms_Intrinsic_128B;
435435
def int_hexagon_V6_vmaskedstorentq_128B: Hexagon_custom_vms_Intrinsic_128B;
436436
def int_hexagon_V6_vmaskedstorentnq_128B: Hexagon_custom_vms_Intrinsic_128B;
437437

438-
// Carryo
439-
// The script can't autogenerate clang builtins for vaddcarryo/vsubarryo,
440-
// and they are marked in HexagonIset.py as not having intrinsics at all.
441-
// The script could generate intrinsics, but instead of doing intrinsics
442-
// without builtins, just put the intrinsics here.
443-
444-
// tag : V6_vaddcarryo
445-
class Hexagon_custom_v16i32v64i1_v16i32v16i32_Intrinsic<
446-
list<IntrinsicProperty> intr_properties = [IntrNoMem]>
447-
: Hexagon_NonGCC_Intrinsic<
448-
[llvm_v16i32_ty,llvm_v64i1_ty], [llvm_v16i32_ty,llvm_v16i32_ty],
449-
intr_properties>;
450-
451-
// tag : V6_vaddcarryo
452-
class Hexagon_custom_v32i32v128i1_v32i32v32i32_Intrinsic_128B<
453-
list<IntrinsicProperty> intr_properties = [IntrNoMem]>
454-
: Hexagon_NonGCC_Intrinsic<
455-
[llvm_v32i32_ty,llvm_v128i1_ty], [llvm_v32i32_ty,llvm_v32i32_ty],
456-
intr_properties>;
457-
458-
// Pseudo intrinsics for widening vector isntructions that
459-
// get replaced with the real Hexagon instructions during
460-
// instruction lowering.
461-
class Hexagon_widenvec_Intrinsic
462-
: Hexagon_NonGCC_Intrinsic<
463-
[llvm_anyvector_ty],
464-
[LLVMTruncatedType<0>, LLVMTruncatedType<0>],
465-
[IntrNoMem]>;
466-
467-
class Hexagon_non_widenvec_Intrinsic
468-
: Hexagon_NonGCC_Intrinsic<
469-
[llvm_anyvector_ty],
470-
[LLVMMatchType<0>, LLVMMatchType<0>],
471-
[IntrNoMem]>;
472-
473-
// Widening vector add
474-
def int_hexagon_vadd_su: Hexagon_widenvec_Intrinsic;
475-
def int_hexagon_vadd_uu: Hexagon_widenvec_Intrinsic;
476-
def int_hexagon_vadd_ss: Hexagon_widenvec_Intrinsic;
477-
def int_hexagon_vadd_us: Hexagon_widenvec_Intrinsic;
478-
479-
480-
// Widening vector subtract
481-
def int_hexagon_vsub_su: Hexagon_widenvec_Intrinsic;
482-
def int_hexagon_vsub_uu: Hexagon_widenvec_Intrinsic;
483-
def int_hexagon_vsub_ss: Hexagon_widenvec_Intrinsic;
484-
def int_hexagon_vsub_us: Hexagon_widenvec_Intrinsic;
485-
486-
// Widening vector multiply
487-
def int_hexagon_vmpy_su: Hexagon_widenvec_Intrinsic;
488-
def int_hexagon_vmpy_uu: Hexagon_widenvec_Intrinsic;
489-
def int_hexagon_vmpy_ss: Hexagon_widenvec_Intrinsic;
490-
def int_hexagon_vmpy_us: Hexagon_widenvec_Intrinsic;
491-
492-
def int_hexagon_vavgu: Hexagon_non_widenvec_Intrinsic;
493-
def int_hexagon_vavgs: Hexagon_non_widenvec_Intrinsic;
494-
495-
class Hexagon_vasr_Intrinsic
496-
: Hexagon_NonGCC_Intrinsic<
497-
[LLVMSubdivide2VectorType<0>],
498-
[llvm_anyvector_ty, LLVMMatchType<0>, llvm_i32_ty],
499-
[IntrNoMem]>;
500-
501-
def int_hexagon_vasrsat_su: Hexagon_vasr_Intrinsic;
502-
def int_hexagon_vasrsat_uu: Hexagon_vasr_Intrinsic;
503-
def int_hexagon_vasrsat_ss: Hexagon_vasr_Intrinsic;
504-
505-
class Hexagon_widen_vec_scalar_Intrinsic
506-
: Hexagon_NonGCC_Intrinsic<
507-
[llvm_anyvector_ty],
508-
[LLVMTruncatedType<0>, llvm_i32_ty],
509-
[IntrNoMem]>;
510-
511-
// Widening vector scalar multiply
512-
def int_hexagon_vmpy_ub_b: Hexagon_widen_vec_scalar_Intrinsic;
513-
def int_hexagon_vmpy_ub_ub: Hexagon_widen_vec_scalar_Intrinsic;
514-
def int_hexagon_vmpy_uh_uh: Hexagon_widen_vec_scalar_Intrinsic;
515-
def int_hexagon_vmpy_h_h: Hexagon_widen_vec_scalar_Intrinsic;
516438

517439
// Intrinsic for instrumentation based profiling using a custom handler. The
518440
// name of the handler is passed as the first operand to the intrinsic. The

llvm/include/llvm/IR/IntrinsicsHexagonDep.td

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,20 @@ class Hexagon_custom_v32i32v128i1_v32i32v32i32v128i1_Intrinsic_128B<
491491
[llvm_v32i32_ty,llvm_v128i1_ty], [llvm_v32i32_ty,llvm_v32i32_ty,llvm_v128i1_ty],
492492
intr_properties>;
493493

494+
// tag : V6_vaddcarryo
495+
class Hexagon_custom_v16i32v64i1_v16i32v16i32_Intrinsic<
496+
list<IntrinsicProperty> intr_properties = [IntrNoMem]>
497+
: Hexagon_NonGCC_Intrinsic<
498+
[llvm_v16i32_ty,llvm_v64i1_ty], [llvm_v16i32_ty,llvm_v16i32_ty],
499+
intr_properties>;
500+
501+
// tag : V6_vaddcarryo
502+
class Hexagon_custom_v32i32v128i1_v32i32v32i32_Intrinsic_128B<
503+
list<IntrinsicProperty> intr_properties = [IntrNoMem]>
504+
: Hexagon_NonGCC_Intrinsic<
505+
[llvm_v32i32_ty,llvm_v128i1_ty], [llvm_v32i32_ty,llvm_v32i32_ty],
506+
intr_properties>;
507+
494508
// tag : V6_vaddcarrysat
495509
class Hexagon_v16i32_v16i32v16i32v64i1_Intrinsic<string GCCIntSuffix,
496510
list<IntrinsicProperty> intr_properties = [IntrNoMem]>

llvm/lib/Target/Hexagon/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ add_llvm_target(HexagonCodeGen
3737
HexagonGenMemAbsolute.cpp
3838
HexagonGenMux.cpp
3939
HexagonGenPredicate.cpp
40-
HexagonGenWideningVecFloatInstr.cpp
41-
HexagonGenWideningVecInstr.cpp
4240
HexagonHardwareLoops.cpp
4341
HexagonHazardRecognizer.cpp
4442
HexagonInstrInfo.cpp
@@ -55,7 +53,6 @@ add_llvm_target(HexagonCodeGen
5553
HexagonNewValueJump.cpp
5654
HexagonOptAddrMode.cpp
5755
HexagonOptimizeSZextends.cpp
58-
HexagonOptShuffleVector.cpp
5956
HexagonPeephole.cpp
6057
HexagonQFPOptimizer.cpp
6158
HexagonRDFOpt.cpp

llvm/lib/Target/Hexagon/Hexagon.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ FunctionPass *createHexagonGenInsert();
9292
FunctionPass *createHexagonGenMemAbsolute();
9393
FunctionPass *createHexagonGenMux();
9494
FunctionPass *createHexagonGenPredicate();
95-
FunctionPass *
96-
createHexagonGenWideningVecFloatInstr(const HexagonTargetMachine &);
97-
FunctionPass *createHexagonGenWideningVecInstr(const HexagonTargetMachine &);
9895
FunctionPass *createHexagonHardwareLoops();
9996
FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM,
10097
CodeGenOptLevel OptLevel);
@@ -105,7 +102,6 @@ FunctionPass *createHexagonMergeActivateWeight();
105102
FunctionPass *createHexagonNewValueJump();
106103
FunctionPass *createHexagonOptAddrMode();
107104
FunctionPass *createHexagonOptimizeSZextends();
108-
FunctionPass *createHexagonOptShuffleVector(const HexagonTargetMachine &);
109105
FunctionPass *createHexagonPacketizer(bool Minimal);
110106
FunctionPass *createHexagonPeephole();
111107
FunctionPass *createHexagonRDFOpt();

llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ struct PrintRegister {
5151
};
5252

5353
[[maybe_unused]] raw_ostream &operator<<(raw_ostream &OS,
54-
const PrintRegister &PR) {
54+
const PrintRegister &PR);
55+
raw_ostream &operator<<(raw_ostream &OS, const PrintRegister &PR) {
5556
return OS << printReg(PR.Reg.Reg, &PR.TRI, PR.Reg.SubReg);
5657
}
5758

0 commit comments

Comments
 (0)