From 0a45eabde0144eaf55f952fd30c44cb15d30df69 Mon Sep 17 00:00:00 2001 From: zhoujingya Date: Sun, 8 Oct 2023 17:31:53 +0800 Subject: [PATCH] Revert "[VENTUS][RISCV][feat] Legalized vector parameters" This reverts commit 7bd98c0ff827f2e5f156128cb8183ade5eda30ee. --- llvm/lib/Target/RISCV/RISCVISelLowering.cpp | 47 ++----------------- llvm/lib/Target/RISCV/RISCVISelLowering.h | 7 --- .../CodeGen/RISCV/VentusGPGPU/vecargtest.cl | 19 -------- 3 files changed, 3 insertions(+), 70 deletions(-) delete mode 100644 llvm/test/CodeGen/RISCV/VentusGPGPU/vecargtest.cl diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 85ddcec64797..0ae6284a4371 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -7460,46 +7460,6 @@ SDValue RISCVTargetLowering::lowerKernArgParameterPtr(SelectionDAG &DAG, return DAG.getObjectPtrOffset(SL, BasePtr, TypeSize::Fixed(Offset)); } -SDValue RISCVTargetLowering::getFPExtOrFPRound(SelectionDAG &DAG, - SDValue Op, - const SDLoc &DL, - EVT VT) const { - return Op.getValueType().bitsLE(VT) ? - DAG.getNode(ISD::FP_EXTEND, DL, VT, Op) : - DAG.getNode(ISD::FP_ROUND, DL, VT, Op, - DAG.getTargetConstant(0, DL, MVT::i32)); -} - -SDValue RISCVTargetLowering::convertArgType(SelectionDAG &DAG, EVT VT, EVT MemVT, - const SDLoc &SL, SDValue Val, - bool Signed, - const ISD::InputArg *Arg) const { - // First, if it is a widened vector, narrow it. - if (VT.isVector() && - VT.getVectorNumElements() != MemVT.getVectorNumElements()) { - EVT NarrowedVT = - EVT::getVectorVT(*DAG.getContext(), MemVT.getVectorElementType(), - VT.getVectorNumElements()); - Val = DAG.getNode(ISD::EXTRACT_SUBVECTOR, SL, NarrowedVT, Val, - DAG.getConstant(0, SL, MVT::i32)); - } - - // Then convert the vector elements or scalar value. - if (Arg && (Arg->Flags.isSExt() || Arg->Flags.isZExt()) && - VT.bitsLT(MemVT)) { - unsigned Opc = Arg->Flags.isZExt() ? ISD::AssertZext : ISD::AssertSext; - Val = DAG.getNode(Opc, SL, MemVT, Val, DAG.getValueType(VT)); - } - - if (MemVT.isFloatingPoint()) - Val = getFPExtOrFPRound(DAG, Val, SL, VT); - else if (Signed) - Val = DAG.getSExtOrTrunc(Val, SL, VT); - else - Val = DAG.getZExtOrTrunc(Val, SL, VT); - - return Val; -} SDValue RISCVTargetLowering::lowerKernargMemParameter( SelectionDAG &DAG, EVT VT, EVT MemVT, const SDLoc &SL, SDValue Chain, @@ -7530,7 +7490,7 @@ SDValue RISCVTargetLowering::lowerKernargMemParameter( SDValue ArgVal = DAG.getNode(ISD::TRUNCATE, SL, IntVT, Extract); ArgVal = DAG.getNode(ISD::BITCAST, SL, MemVT, ArgVal); // TODO: Support vector and half type. - ArgVal = convertArgType(DAG, VT, MemVT, SL, ArgVal, Signed, Arg); + //ArgVal = convertArgType(DAG, VT, MemVT, SL, ArgVal, Signed, Arg); return DAG.getMergeValues({ ArgVal, Load.getValue(1) }, SL); } @@ -7540,9 +7500,8 @@ SDValue RISCVTargetLowering::lowerKernargMemParameter( MachineMemOperand::MODereferenceable | MachineMemOperand::MOInvariant); - SDValue Val = convertArgType(DAG, VT, MemVT, SL, Load, Signed, Arg); - // return DAG.getMergeValues({ Load, Load.getValue(1) }, SL); - return DAG.getMergeValues({ Val, Load.getValue(1) }, SL); + // SDValue Val = convertArgType(DAG, VT, MemVT, SL, Load, Signed, Arg); + return DAG.getMergeValues({ Load, Load.getValue(1) }, SL); } // Returns the opcode of the target-specific SDNode that implements the 32-bit diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.h b/llvm/lib/Target/RISCV/RISCVISelLowering.h index 0965b7020ed1..71ffa4a2b0f0 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.h +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.h @@ -722,13 +722,6 @@ private: SDValue expandUnalignedRVVStore(SDValue Op, SelectionDAG &DAG) const; SDValue lowerKernArgParameterPtr(SelectionDAG &DAG, const SDLoc &SL, SDValue Chain, uint64_t Offset) const; - SDValue getFPExtOrFPRound(SelectionDAG &DAG, SDValue Op, - const SDLoc &DL, - EVT VT) const; - SDValue convertArgType(SelectionDAG &DAG, EVT VT, EVT MemVT, - const SDLoc &SL, SDValue Val, - bool Signed, - const ISD::InputArg *Arg) const; SDValue lowerKernargMemParameter(SelectionDAG &DAG, EVT VT, EVT MemVT, const SDLoc &SL, SDValue Chain, uint64_t Offset, Align Alignment, diff --git a/llvm/test/CodeGen/RISCV/VentusGPGPU/vecargtest.cl b/llvm/test/CodeGen/RISCV/VentusGPGPU/vecargtest.cl deleted file mode 100644 index f40c5702f7bf..000000000000 --- a/llvm/test/CodeGen/RISCV/VentusGPGPU/vecargtest.cl +++ /dev/null @@ -1,19 +0,0 @@ -// RUN: clang -target riscv32 -mcpu=ventus-gpgpu < %s \ -// RUN: | FileCheck -check-prefix=VENTUS %s - -__kernel void test_kernel( -char2 c, uchar2 uc, short2 s, ushort2 us, int2 i, uint2 ui, float2 f, -__global float2 *result) -{ - // there is no FileCheck now - result[0] = convert_float2(c); - result[1] = convert_float2(uc); - result[2] = convert_float2(s); - result[3] = convert_float2(us); - result[4] = convert_float2(i); - result[5] = convert_float2(ui); - result[6] = f; -} - - -