1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

[Hexagon] Fix the value of HexagonII::TypeCVI_FIRST

This value is the first vector instruction type in numerical order. The
previous value was incorrect, leaving TypeCVI_GATHER outside of the range
for vector instructions. This caused vector .new instructions to be
incorrectly encoded in the presence of gather.

llvm-svn: 335065
This commit is contained in:
Krzysztof Parzyszek 2018-06-19 18:09:54 +00:00
parent 9b3d8dac02
commit 266224bf91
2 changed files with 13 additions and 1 deletions

View File

@ -25,7 +25,7 @@ namespace llvm {
/// HexagonII - This namespace holds all of the target specific flags that
/// instruction info tracks.
namespace HexagonII {
unsigned const TypeCVI_FIRST = TypeCVI_HIST;
unsigned const TypeCVI_FIRST = TypeCVI_4SLOT_MPY;
unsigned const TypeCVI_LAST = TypeCVI_VX_LATE;
enum SubTarget {

View File

@ -0,0 +1,12 @@
// RUN: llvm-mc -arch=hexagon -mcpu=hexagonv65 -mhvx -show-encoding %s -o - | FileCheck %s
// TypeCVI_FIRST was set incorrectly, causing vgather not to be considered
// a vector instruction. This resulted in an incorrect encoding of the vtmp.new
// operand in the store.
// CHECK: encoding: [0x1f,0x45,0x05,0x2f,0x22,0xc0,0x21,0x28]
{
if (q0) vtmp.h = vgather(r5,m0,v31.h).h
vmem(r1+#0) = vtmp.new
}