[llvm-commits] [llvm] r114843 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

Duncan Sands baldrick at free.fr
Tue Sep 28 02:09:16 PDT 2010


Hi Dale,

> Don't try to make a vector of x86mmx; this won't work,
> and asserts.

what is x86mmx?  If it isn't a scalar or vector type, should bitcast
be allowed for it?  If bitcast is to be allowed, it would be better
to create a new predicate for testing whether a type can be used as
the element type of a vector, and use that rather than hard-coding
x86mmx here.  Also, what's the testcase?

Ciao,

Duncan.

>
>
> Modified:
>      llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp?rev=114843&r1=114842&r2=114843&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp Mon Sep 27 12:29:14 2010
> @@ -1572,7 +1572,8 @@
>
>     unsigned WidenSize = WidenVT.getSizeInBits();
>     unsigned InSize = InVT.getSizeInBits();
> -  if (WidenSize % InSize == 0) {
> +  // x86mmx is not an acceptable vector element type, so don't try.
> +  if (WidenSize % InSize == 0&&  InVT != MVT::x86mmx) {
>       // Determine new input vector type.  The new input vector type will use
>       // the same element type (if its a vector) or use the input type as a
>       // vector.  It is the same size as the type to widen to.
> @@ -2049,7 +2050,8 @@
>     // Check if we can convert between two legal vector types and extract.
>     unsigned InWidenSize = InWidenVT.getSizeInBits();
>     unsigned Size = VT.getSizeInBits();
> -  if (InWidenSize % Size == 0&&  !VT.isVector()) {
> +  // x86mmx is not an acceptable vector element type, so don't try.
> +  if (InWidenSize % Size == 0&&  !VT.isVector()&&  VT != MVT::x86mmx) {
>       unsigned NewNumElts = InWidenSize / Size;
>       EVT NewVT = EVT::getVectorVT(*DAG.getContext(), VT, NewNumElts);
>       if (TLI.isTypeSynthesizable(NewVT)) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list