未验证 提交 592e01f5 编写于 作者: G github-actions[bot] 提交者: GitHub

Ensure the relevant containable nodes are handled (#91334)

Co-authored-by: NTanner Gooding <tagoo@outlook.com>
上级 a02c6604
......@@ -8135,7 +8135,16 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre
case NI_Vector128_ToScalar:
case NI_Vector256_ToScalar:
case NI_Vector512_ToScalar:
case NI_SSE2_ConvertToInt32:
case NI_SSE2_ConvertToUInt32:
case NI_SSE2_X64_ConvertToInt64:
case NI_SSE2_X64_ConvertToUInt64:
case NI_SSE2_Extract:
case NI_SSE41_Extract:
case NI_SSE41_X64_Extract:
case NI_AVX_ExtractVector128:
case NI_AVX2_ConvertToInt32:
case NI_AVX2_ConvertToUInt32:
case NI_AVX2_ExtractVector128:
case NI_AVX512F_ExtractVector128:
case NI_AVX512F_ExtractVector256:
......@@ -8178,6 +8187,13 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre
return false;
}
case NI_Vector128_get_Zero:
case NI_Vector256_get_Zero:
{
// These are only containable as part of Sse41.Insert
return false;
}
case NI_SSE3_MoveAndDuplicate:
case NI_AVX2_BroadcastScalarToVector128:
case NI_AVX2_BroadcastScalarToVector256:
......
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.aa
// Found by Antigen
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
using System.Numerics;
using Xunit;
public class TestClass
{
public struct S1
{
}
static short s_short_8 = 5;
static int s_int_9 = -2;
long long_59 = 4;
uint uint_64 = 1;
Vector256<int> v256_int_90 = Vector256.Create(2, -5, 4, 4, 5, 0, -1, 5);
S1 s1_99 = new S1();
private uint Method4(out short p_short_161, S1 p_s1_162, bool p_bool_163, ref int p_int_164)
{
unchecked
{
p_short_161 = 15|4;
if ((long_59 *= 15>>4)!= (long_59 |= 15^4))
{
}
else
{
Vector128.CreateScalarUnsafe(Vector256.Sum(v256_int_90));
}
return 15|4;
}
}
private void Method0()
{
unchecked
{
uint_64 = Method4(out s_short_8, s1_99, 15<4, ref s_int_9);
return;
}
}
[Fact]
public static void TestEntryPoint()
{
new TestClass().Method0();
}
}
/*
Assert failure(PID 34336 [0x00008620], Thread: 38576 [0x96b0]): Assertion failed '!childNode->isContainableHWIntrinsic()' in 'TestClass:Method4(byref,TestClass+S1,bool,byref):uint:this' during 'Lowering nodeinfo' (IL size 63; hash 0xa4e6dede; Tier0)
File: D:\git\runtime\src\coreclr\jit\lowerxarch.cpp Line: 8201
Image: D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\CoreRun.exe
*/
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Optimize>True</Optimize>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildProjectName).cs" />
</ItemGroup>
</Project>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册