Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/coreclr/jit/gentree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21830,13 +21830,11 @@ GenTree* Compiler::gtNewSimdShuffleNode(var_types type,

if (needsZero)
{
assert(!compIsaSupportedDebugOnly(InstructionSet_SSSE3));
assert((simdSize == 32) || !compIsaSupportedDebugOnly(InstructionSet_SSSE3));

op2 = gtNewVconNode(type, simdBaseJitType);
op2->AsVecCon()->gtSimd16Val = mskCns.v128[0];

GenTree* zero = gtNewZeroConNode(type, simdBaseJitType);
retNode = gtNewSimdCndSelNode(type, op2, retNode, zero, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
op2->AsVecCon()->gtSimd32Val = mskCns;
retNode = gtNewSimdBinOpNode(GT_AND, type, op2, retNode, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
}

return retNode;
Expand Down
47 changes: 47 additions & 0 deletions src/tests/JIT/Regression/JitBlue/GitHub_85129/GitHub_85129.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
//

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using Xunit;

public class Program
{
[Fact]
public static int TestEntryPoint()
{

Vector256<int> v256Shuffle = Vector256.Create(100, 101, 102, 103, 104, 105, 106, 107);
Vector256<int> v256ShuffleExpectedResult = Vector256.Create(107, 105, 0, 101, 106, 104, 0, 100);
Vector256<int> v256ShuffleActualResult = Vector256Shuffle(v256Shuffle);
if(v256ShuffleExpectedResult != v256ShuffleActualResult)
{
return 1;
Comment thread
jeffhandley marked this conversation as resolved.
}

Vector512<int> v512Shuffle = Vector512.Create(100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115);
Vector512<int> v512ShuffleExpectedResult = Vector512.Create(115, 113, 111, 0, 107, 105, 103, 101, 114, 112, 110, 108, 0, 104, 102, 100);
Vector512<int> v512ShuffleActualResult = Vector512Shuffle(v512Shuffle);
if (v512ShuffleExpectedResult != v512ShuffleActualResult)
{
return 1;
}
return 100;
}


[MethodImpl(MethodImplOptions.NoInlining)]
public static Vector256<int> Vector256Shuffle(Vector256<int> v1)
{
return Vector256.Shuffle(v1, Vector256.Create(7, 5, 132, 1, 6, 4, -3, 0));
}

[MethodImpl(MethodImplOptions.NoInlining)]
public static Vector512<int> Vector512Shuffle(Vector512<int> v1)
{
return Vector512.Shuffle(v1, Vector512.Create(15, 13, 11, 99, 7, 5, 3, 1, 14, 12, 10, 8, -11, 4, 2, 0));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildProjectName).cs" />
</ItemGroup>
</Project>