Skip to content

Commit 9c20a8f

Browse files
committed
also guard against v2bf16
1 parent d1e77e0 commit 9c20a8f

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1868,7 +1868,8 @@ bool NVPTXDAGToDAGISel::tryStoreParam(SDNode *N) {
18681868
case 1: {
18691869
MVT::SimpleValueType MemTy = Mem->getMemoryVT().getSimpleVT().SimpleTy;
18701870
SDValue Imm = Ops[0];
1871-
if (MemTy != MVT::f16 && MemTy != MVT::v2f16 && MemTy != MVT::bf16 &&
1871+
if (MemTy != MVT::f16 && MemTy != MVT::v2f16 &&
1872+
MemTy != MVT::bf16 && MemTy != MVT::v2bf16 &&
18721873
(isa<ConstantSDNode>(Imm) || isa<ConstantFPSDNode>(Imm))) {
18731874
// Convert immediate to target constant
18741875
if (MemTy == MVT::f32 || MemTy == MVT::f64) {

llvm/test/CodeGen/NVPTX/st-param-imm.ll

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2023,4 +2023,28 @@ define void @st_param_bfloat() {
20232023
ret void
20242024
}
20252025

2026+
define void @st_param_v2bfloat(<2 x bfloat> %val) {
2027+
; CHECK-LABEL: st_param_v2bfloat(
2028+
; CHECK: .param .align 4 .b8 st_param_v2bfloat_param_0[4]
2029+
; CHECK-NEXT: )
2030+
; CHECK-NEXT: {
2031+
; CHECK-NEXT: .reg .b32 %r<2>;
2032+
; CHECK-EMPTY:
2033+
; CHECK-NEXT: // %bb.0:
2034+
; CHECK-NEXT: ld.param.b32 %r1, [st_param_v2bfloat_param_0];
2035+
; CHECK-NEXT: { // callseq 84, 0
2036+
; CHECK-NEXT: .param .align 4 .b8 param0[4];
2037+
; CHECK-NEXT: st.param.b32 [param0], %r1;
2038+
; CHECK-NEXT: call.uni
2039+
; CHECK-NEXT: call_v2bfloat,
2040+
; CHECK-NEXT: (
2041+
; CHECK-NEXT: param0
2042+
; CHECK-NEXT: );
2043+
; CHECK-NEXT: } // callseq 84
2044+
; CHECK-NEXT: ret;
2045+
call void @call_v2bfloat(<2 x bfloat> %val)
2046+
ret void
2047+
}
2048+
20262049
declare void @call_bfloat(bfloat)
2050+
declare void @call_v2bfloat(<2 x bfloat>)

0 commit comments

Comments
 (0)