Skip to content

Commit 3c24eb3

Browse files
[LLVM][MIR] Support parsing bfloat immediates in MIR parser (#96010)
Adds support in MIR parser for parsing bfloat immediates, and adds a test for this.
1 parent 228c2e1 commit 3c24eb3

File tree

4 files changed

+15
-0
lines changed

4 files changed

+15
-0
lines changed

llvm/lib/CodeGen/MIRParser/MILexer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ static MIToken::TokenKind getIdentifierKind(StringRef Identifier) {
242242
.Case("intrinsic", MIToken::kw_intrinsic)
243243
.Case("target-index", MIToken::kw_target_index)
244244
.Case("half", MIToken::kw_half)
245+
.Case("bfloat", MIToken::kw_bfloat)
245246
.Case("float", MIToken::kw_float)
246247
.Case("double", MIToken::kw_double)
247248
.Case("x86_fp80", MIToken::kw_x86_fp80)

llvm/lib/CodeGen/MIRParser/MILexer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ struct MIToken {
100100
kw_intrinsic,
101101
kw_target_index,
102102
kw_half,
103+
kw_bfloat,
103104
kw_float,
104105
kw_double,
105106
kw_x86_fp80,

llvm/lib/CodeGen/MIRParser/MIParser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2916,6 +2916,7 @@ bool MIParser::parseMachineOperand(const unsigned OpCode, const unsigned OpIdx,
29162916
case MIToken::IntegerLiteral:
29172917
return parseImmediateOperand(Dest);
29182918
case MIToken::kw_half:
2919+
case MIToken::kw_bfloat:
29192920
case MIToken::kw_float:
29202921
case MIToken::kw_double:
29212922
case MIToken::kw_x86_fp80:
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# RUN: llc -run-pass none -o - %s | FileCheck %s
2+
# This test ensures that the MIR parser parses bfloat immediates correctly.
3+
4+
---
5+
name: bfloat_immediates
6+
body: |
7+
bb.0:
8+
; CHECK: %0:_(s16) = G_FCONSTANT bfloat 0xR3E80
9+
; CHECK: %1:_(s16) = G_FCONSTANT bfloat 0xR3E80
10+
%0:_(s16) = G_FCONSTANT bfloat 0xR3E80
11+
%1:_(s16) = G_FCONSTANT bfloat 0.25
12+
...

0 commit comments

Comments
 (0)