llvm/llvm-project

Unnecessary vector type produces wrong ll parser error

Open

#29,043 opened on Jul 22, 2016

View on GitHub
 (5 comments) (0 reactions) (0 assignees)C++ (26,378 stars) (10,782 forks)batch import
bugzillagood first issuellvm:core

Description

Bugzilla Link 28669
Version trunk
OS Linux
CC @ekatz

Extended Description

This testcase produces a misleading parse error

; RUN: llvm-as < %s
define void @add_v2i16(<2 x i16> addrspace(1)* %out, <2 x i16> %in) {
  %arst = add <2 x i16> %in, <2 x i16> <i16 123, i16 456>
  store <2 x i16> %arst, <2 x i16> addrspace(1)* %out
  ret void
}

expected-type-wrong-error.ll:3:31: error: expected type
  %arst = add <2 x i16> %in, <2 x i16> <i16 123, i16 456>

It is erroring on the 2nd operand <2 x i16> type, it really means the type is unexpected. The correctly parsing version is

  %arst = add <2 x i16> %in, <i16 123, i16 456>

Contributor guide