Displaying 12 results from an estimated 12 matches for "memvt".
2015 May 12
2
[LLVMdev] i1 types in MergeConsecutiveStores
Hello LLVM,
In DAGCombiner.cpp, MergeConsecutiveStores uses
int64_t ElementSizeBytes = MemVT.getSizeInBits()/8;
https://github.com/llvm-mirror/llvm/blob/master/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L10669
which is broken for i1 types where getSizeInBits() == 1. My
out-of-tree target hits this case and eventually LLVM asserts in
Type.cpp.
Is there some reason MergeConsecutiveStores s...
2017 Sep 17
2
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
...; Jon Chesterfield <jonathanchesterfield at gmail.com>
Cc: llvm-dev at lists.llvm.org
Subject: Re: Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
Hi Elena,
Thanks for your response.
The store is ok but the extending load generates assertion after the store because MemVT is i8 and VT is i1 on following line.
assert(MemVT.getScalarType().bitsLT(VT.getScalarType()) && "Should only be an extending load, not truncating!")
so I think we need to use non-extending load for element size less than 8bit on "DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR...
2017 Sep 18
1
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
...ad(N->getValueType(0), dl, Store, StackPtr, MachinePointerInfo());
> } else {
> return DAG.getExtLoad(ISD::EXTLOAD, dl, N->getValueType(0), Store, StackPtr, MachinePointerInfo(), EltVT);
> }
I assume that we need the opposite -
if (.. < 8)
getExtLoad // VT should be MVT::i8, MemVT should be MVT::i1
else
getLoad
- Elena
From: jingu at codeplay.com [mailto:jingu at codeplay.com]
Sent: Monday, September 18, 2017 13:40
To: Demikhovsky, Elena <elena.demikhovsky at intel.com>; daniel_l_sanders at apple.com <daniel_l_sanders at apple.com>; Jon Chesterfield...
2014 Mar 07
3
[LLVMdev] [RFC] Add second "failure" AtomicOrdering to cmpxchg instruction
...uot;""
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index adba296..a30656a 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -692,12 +692,14 @@ public:
SDValue getAtomic(unsigned Opcode, SDLoc dl, EVT MemVT, SDValue Chain,
SDValue Ptr, SDValue Cmp, SDValue Swp,
MachinePointerInfo PtrInfo, unsigned Alignment,
- AtomicOrdering Ordering,
+ AtomicOrdering SuccessOrdering,
+ AtomicOrdering FailureOrdering,...
2017 Sep 15
2
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
> extends the elements to 8bit and stores them on stack.
Store is responsible for zero-extend. This is the policy...
- Elena
-----Original Message-----
From: jingu at codeplay.com [mailto:jingu at codeplay.com]
Sent: Friday, September 15, 2017 17:45
To: llvm-dev at lists.llvm.org; Demikhovsky, Elena <elena.demikhovsky at intel.com>; daniel_l_sanders at apple.com
Subject: Re: Question
2016 Mar 28
0
RFC: atomic operations on SI+
...Op,
> }
> }
>
> +SDValue SITargetLowering::LowerATOMIC_CMP_SWAP(SDValue Op, SelectionDAG &DAG) const
> +{
> + SDLoc DL(Op);
> +
> + AtomicSDNode *Swap = cast<AtomicSDNode>(Op);
> + assert(Swap && Swap->isCompareAndSwap());
> +
> + EVT MemVT = Swap->getMemoryVT();
> + EVT ValVT = EVT::getVectorVT(*DAG.getContext(), MemVT, 2);
> + SDValue Cmp = Op.getOperand(2);
> + SDValue New = Op.getOperand(3);
> +
> + // "src comes from the first data-vgpr, cmp from the second."
> + SDValue Val = DAG.getNode(ISD::...
2016 Mar 25
2
RFC: atomic operations on SI+
Hi Tom, Matt,
I'm working on a project that needs few coherent atomic operations (HSA
mode: load, store, compare-and-swap) for std::atomic_uint in HCC.
the attached patch implements atomic compare and swap for SI+
(untested). I tried to stay within what was available, but there are
few issues that I was unsure how to address:
1.) it currently uses v2i32 for both input and output. This
2010 Sep 22
2
[LLVMdev] r114523 (convert the last 4 X86ISD...) breaks clang
...ting here, but I don't get much time right now).
Trying to compile the following simple code, clang asserts.
---------- round.c --------
#include <math.h>
float test() { return llround(1); }
--------------------
[MacPro:~/Desktop] jddupas% clang -arch i386 -c round.c
Assertion failed: (memvt.getStoreSize() == MMO->getSize() && "Size mismatch!"), function MemSDNode, file /Volumes/MacPro/Projects/OpenSource/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 5393.
0 clang 0x0000000100df5422 PrintStackTrace(void*) + 34
1 clang 0x0000000100df...
2010 Sep 22
0
[LLVMdev] r114523 (convert the last 4 X86ISD...) breaks clang
...).
>
> Trying to compile the following simple code, clang asserts.
>
> ---------- round.c --------
> #include <math.h>
> float test() { return llround(1); }
> --------------------
>
> [MacPro:~/Desktop] jddupas% clang -arch i386 -c round.c
> Assertion failed: (memvt.getStoreSize() == MMO->getSize() && "Size mismatch!"), function MemSDNode, file /Volumes/MacPro/Projects/OpenSource/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 5393.
> 0 clang 0x0000000100df5422 PrintStackTrace(void*) + 34
> 1 clang 0x00...
2016 Dec 15
2
TableGen - Help to implement a form of gather/scatter operations for Mips MSA
Hello.
I fixed the bug reported in the previous post on this thread
(<<llvm::MemSDNode::MemSDNode(unsigned int, unsigned int, const llvm::DebugLoc&,
llvm::SDVTList, llvm::EVT, llvm::MachineMemOperand*): Assertion `memvt.getStoreSize() <=
MMO->getSize() && "Size mismatch!"' failed.>>)
The problem with this strange error reported comes from the fact I actually did NOT
have defined type v128i64 in files:
[repo]/llvm/include/llvm/IR/Intrinsics.td
[repo]/llvm/include...
2016 Dec 12
0
TableGen - Help to implement a form of gather/scatter operations for Mips MSA
...gt; t0,
t130, t193, TargetConstant:i64<0>, t121
llc:
/home/asusu/LLVM/llvm38Nov2016/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6804:
llvm::MemSDNode::MemSDNode(unsigned int, unsigned int, const llvm::DebugLoc&,
llvm::SDVTList, llvm::EVT, llvm::MachineMemOperand*): Assertion `memvt.getStoreSize() <=
MMO->getSize() && "Size mismatch!"' failed.
Does anybody know why this happens? I'd like to mention that I also gave in
[Target]ISelLowering.cpp a call to setOperationAction(ISD::MGATHER, aType, Legal), which
should have fixed this problem,...
2016 Dec 11
2
TableGen - Help to implement a form of gather/scatter operations for Mips MSA
Hello.
Will, thanks a lot for pointing me to the MaskedGatherSDNode and mgatherv4i32. I have
to say that the definition of the "multiclass avx512_gather" from
lib/Target/X86/X86InstrAVX512.td is difficult to follow and I prefer not to use it.
I currently have some serious problems with TableGen - it gives an assertion failure: