[llvm] r181177 - Revert r164763 because it introduces new shuffles.

Andrea_DiBiagio at sn.scee.net Andrea_DiBiagio at sn.scee.net
Tue Sep 3 09:06:25 PDT 2013


Hi Nadav,

While looking at llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll I 
noticed that your r181177 removed two valid tests which were not part of 
r164763.
To be more specific, your change reverted functions @test14a and @test14b 
which were added by r179291.
I think that those were accidentally removed by mistake and should be 
re-added to vec_shuffle.ll. By looking at the log message for r181177 it 
is clear that your intention was to revert r164763 and not the tests from 
r179291.

Sorry for spotting this only now.
Please let me know if it is ok to re-add the tests from r179291 into 
llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll.

Thanks!
Andrea Di Biagio

llvm-commits-bounces at cs.uiuc.edu wrote on 06/05/2013 03:39:09:

> From: Nadav Rotem <nrotem at apple.com>
> To: llvm-commits at cs.uiuc.edu, 
> Date: 06/05/2013 03:41
> Subject: [llvm] r181177 - Revert r164763 because it introduces new 
shuffles.
> Sent by: llvm-commits-bounces at cs.uiuc.edu
> 
> Author: nadav
> Date: Sun May  5 21:39:09 2013
> New Revision: 181177
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=181177&view=rev
> Log:
> Revert r164763 because it introduces new shuffles.
> Thanks Nick Lewycky for pointing this out.
> 
> 
> Modified:
>     llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
>     llvm/trunk/test/Transforms/InstCombine/vec_demanded_elts.ll
>     llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll
> 
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/
> 
InstCombine/InstCombineSelect.cpp?rev=181177&r1=181176&r2=181177&view=diff
> 
==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp 
(original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp Sun 
> May  5 21:39:09 2013
> @@ -974,7 +974,7 @@ Instruction *InstCombiner::visitSelectIn
>      return &SI;
>    }
> 
> -  if (VectorType *VecTy = dyn_cast<VectorType>(SI.getType())) {
> +  if (VectorType* VecTy = dyn_cast<VectorType>(SI.getType())) {
>      unsigned VWidth = VecTy->getNumElements();
>      APInt UndefElts(VWidth, 0);
>      APInt AllOnesEltMask(APInt::getAllOnesValue(VWidth));
> @@ -984,24 +984,6 @@ Instruction *InstCombiner::visitSelectIn
>        return &SI;
>      }
> 
> -    if (ConstantVector *CV = dyn_cast<ConstantVector>(CondVal)) {
> -      // Form a shufflevector instruction.
> -      SmallVector<Constant *, 8> Mask(VWidth);
> -      Type *Int32Ty = Type::getInt32Ty(CV->getContext());
> -      for (unsigned i = 0; i != VWidth; ++i) {
> -        Constant *Elem = cast<Constant>(CV->getOperand(i));
> -        if (ConstantInt *E = dyn_cast<ConstantInt>(Elem))
> -          Mask[i] = ConstantInt::get(Int32Ty, i + (E->isZero() ? 
> VWidth : 0));
> -        else if (isa<UndefValue>(Elem))
> -          Mask[i] = UndefValue::get(Int32Ty);
> -        else
> -          return 0;
> -      }
> -      Constant *MaskVal = ConstantVector::get(Mask);
> -      Value *V = Builder->CreateShuffleVector(TrueVal, FalseVal, 
MaskVal);
> -      return ReplaceInstUsesWith(SI, V);
> -    }
> -
>      if (isa<ConstantAggregateZero>(CondVal)) {
>        return ReplaceInstUsesWith(SI, FalseVal);
>      }
> 
> Modified: llvm/trunk/test/Transforms/InstCombine/vec_demanded_elts.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/
> 
InstCombine/vec_demanded_elts.ll?rev=181177&r1=181176&r2=181177&view=diff
> 
==============================================================================
> --- llvm/trunk/test/Transforms/InstCombine/vec_demanded_elts.ll 
(original)
> +++ llvm/trunk/test/Transforms/InstCombine/vec_demanded_elts.ll Sun 
> May  5 21:39:09 2013
> @@ -196,7 +196,7 @@ define <4 x float> @test_select(float %f
>  ; CHECK-NOT: insertelement
>  ; CHECK: %a3 = insertelement <4 x float> %a0, float 3.000000e+00, i32 3
>  ; CHECK-NOT: insertelement
> -; CHECK: shufflevector <4 x float> %a3, <4 x float> <float undef, 
> float 4.000000e+00, float 5.000000e+00, float undef>, <4 x i32> <i32
> 0, i32 5, i32 6, i32 3>
> +; CHECK: %ret = select <4 x i1> <i1 true, i1 false, i1 false, i1 
> true>, <4 x float> %a3, <4 x float> <float undef, float 4.000000e
> +00, float 5.000000e+00, float undef>
>    %a0 = insertelement <4 x float> undef, float %f, i32 0
>    %a1 = insertelement <4 x float> %a0, float 1.000000e+00, i32 1
>    %a2 = insertelement <4 x float> %a1, float 2.000000e+00, i32 2
> 
> Modified: llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/
> InstCombine/vec_shuffle.ll?rev=181177&r1=181176&r2=181177&view=diff
> 
==============================================================================
> --- llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll (original)
> +++ llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll Sun May  5
> 21:39:09 2013
> @@ -153,73 +153,3 @@ define <8 x i8> @test12a(<8 x i8> %tmp6,
>    ret <8 x i8> %tmp3
>  }
> 
> -; We should form a shuffle out of a select with constant condition.
> -define <4 x i16> @test13a(<4 x i16> %lhs, <4 x i16> %rhs) {
> -; CHECK: @test13a
> -; CHECK-NEXT: shufflevector <4 x i16> %lhs, <4 x i16> %rhs, <4 x 
> i32> <i32 0, i32 5, i32 2, i32 7>
> -; CHECK-NEXT: ret
> -  %A = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>,
> -           <4 x i16> %lhs, <4 x i16> %rhs
> -  ret <4 x i16> %A
> -}
> -
> -define <4 x i16> @test13b(<4 x i16> %lhs, <4 x i16> %rhs) {
> -; CHECK: @test13b
> -; CHECK-NEXT: ret <4 x i16> %lhs
> -  %A = select <4 x i1> <i1 true, i1 undef, i1 true, i1 true>,
> -           <4 x i16> %lhs, <4 x i16> %rhs
> -  ret <4 x i16> %A
> -}
> -
> -define <4 x i16> @test13c(<4 x i16> %lhs, <4 x i16> %rhs) {
> -; CHECK: @test13c
> -; CHECK-NEXT: shufflevector <4 x i16> %lhs, <4 x i16> %rhs, <4 x 
> i32> <i32 0, i32 undef, i32 2, i32 7>
> -; CHECK-NEXT: ret
> -  %A = select <4 x i1> <i1 true, i1 undef, i1 true, i1 false>,
> -           <4 x i16> %lhs, <4 x i16> %rhs
> -  ret <4 x i16> %A
> -}
> -
> -define <4 x i16> @test13d(<4 x i16> %lhs, <4 x i16> %rhs) {
> -; CHECK: @test13d
> -; CHECK: select
> -; CHECK-NEXT: ret
> -  %A = select <4 x i1> <i1 true, i1 icmp ugt (<4 x i16>(<4 x i16>, 
> <4 x i16>)* @test13a, <4 x i16>(<4 x i16>, <4 x i16>)* @test13b), i1
> true, i1 false>,
> -           <4 x i16> %lhs, <4 x i16> %rhs
> -  ret <4 x i16> %A
> -}
> -
> -define <4 x i16> @test13e(<4 x i16> %lhs, <4 x i16> %rhs) {
> -; CHECK: @test13e
> -; CHECK-NEXT: ret <4 x i16> %rhs
> -  %A = select <4 x i1> <i1 false, i1 false, i1 false, i1 false>,
> -           <4 x i16> %lhs, <4 x i16> %rhs
> -  ret <4 x i16> %A
> -}
> -
> -; Check that sequences of insert/extract element are
> -; collapsed into shuffle instruction with correct shuffle indexes.
> -
> -define <4 x float> @test14a(<4 x float> %LHS, <4 x float> %RHS) {
> -; CHECK: @test14a
> -; CHECK-NEXT: shufflevector <4 x float> %LHS, <4 x float> %RHS, <4 
> x i32> <i32 4, i32 0, i32 6, i32 6>
> -; CHECK-NEXT: ret <4 x float> %tmp4
> -        %tmp1 = extractelement <4 x float> %LHS, i32 0
> -        %tmp2 = insertelement <4 x float> %RHS, float %tmp1, i32 1
> -        %tmp3 = extractelement <4 x float> %RHS, i32 2
> -        %tmp4 = insertelement <4 x float> %tmp2, float %tmp3, i32 3
> -        ret <4 x float> %tmp4
> -}
> -
> -define <4 x float> @test14b(<4 x float> %LHS, <4 x float> %RHS) {
> -; CHECK: @test14b
> -; CHECK-NEXT: shufflevector <4 x float> %LHS, <4 x float> %RHS, <4 
> x i32> <i32 4, i32 3, i32 6, i32 6>
> -; CHECK-NEXT: ret <4 x float> %tmp5
> -        %tmp0 = extractelement <4 x float> %LHS, i32 3
> -        %tmp1 = insertelement <4 x float> %RHS, float %tmp0, i32 0
> -        %tmp2 = extractelement <4 x float> %tmp1, i32 0
> -        %tmp3 = insertelement <4 x float> %RHS, float %tmp2, i32 1
> -        %tmp4 = extractelement <4 x float> %RHS, i32 2
> -        %tmp5 = insertelement <4 x float> %tmp3, float %tmp4, i32 3
> -        ret <4 x float> %tmp5
> -}
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


**********************************************************************
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. 
If you have received this email in error please notify postmaster at scee.net
This footnote also confirms that this email message has been checked for 
all known viruses.
Sony Computer Entertainment Europe Limited
Registered Office: 10 Great Marlborough Street, London W1F 7LP, United 
Kingdom
Registered in England: 3277793
**********************************************************************

P Please consider the environment before printing this e-mail



More information about the llvm-commits mailing list