[llvm] r255155 - [Float2Int] Don't operate on vector instructions

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 9 13:12:28 PST 2015


I forgot to mention, this was https://llvm.org/bugs/show_bug.cgi?id=25750
and Zalman Stern wrote the patch.

On Wed, Dec 9, 2015 at 1:08 PM, Reid Kleckner via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rnk
> Date: Wed Dec  9 15:08:18 2015
> New Revision: 255155
>
> URL: http://llvm.org/viewvc/llvm-project?rev=255155&view=rev
> Log:
> [Float2Int] Don't operate on vector instructions
>
> This fixes a crash bug. It's also not clear if we'd want to do this
> transform for vectors.
>
> Modified:
>     llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp
>     llvm/trunk/test/Transforms/Float2Int/basic.ll
>
> Modified: llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp?rev=255155&r1=255154&r2=255155&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp Wed Dec  9 15:08:18 2015
> @@ -131,6 +131,8 @@ static Instruction::BinaryOps mapBinOpco
>  // integer domain.
>  void Float2Int::findRoots(Function &F, SmallPtrSet<Instruction*,8>
> &Roots) {
>    for (auto &I : instructions(F)) {
> +    if (isa<VectorType>(I.getType()))
> +      continue;
>      switch (I.getOpcode()) {
>      default: break;
>      case Instruction::FPToUI:
>
> Modified: llvm/trunk/test/Transforms/Float2Int/basic.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Float2Int/basic.ll?rev=255155&r1=255154&r2=255155&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/Transforms/Float2Int/basic.ll (original)
> +++ llvm/trunk/test/Transforms/Float2Int/basic.ll Wed Dec  9 15:08:18 2015
> @@ -254,3 +254,13 @@ define i32 @neg_calluser(i32 %value) {
>    ret i32 %7
>  }
>  declare double @g(double)
> +
> +; CHECK-LABEL: @neg_vector
> +; CHECK:  %1 = uitofp <4 x i8> %a to <4 x float>
> +; CHECK:  %2 = fptoui <4 x float> %1 to <4 x i16>
> +; CHECK:  ret <4 x i16> %2
> +define <4 x i16> @neg_vector(<4 x i8> %a) {
> +  %1 = uitofp <4 x i8> %a to <4 x float>
> +  %2 = fptoui <4 x float> %1 to <4 x i16>
> +  ret <4 x i16> %2
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151209/01d40afb/attachment.html>


More information about the llvm-commits mailing list