Skip to content

Commit d27fe28

Browse files
committed
also guard against v2bf16
1 parent 1af3896 commit d27fe28

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
@@ -1852,7 +1852,8 @@ bool NVPTXDAGToDAGISel::tryStoreParam(SDNode *N) {
18521852
case 1: {
18531853
MVT::SimpleValueType MemTy = Mem->getMemoryVT().getSimpleVT().SimpleTy;
18541854
SDValue Imm = Ops[0];
1855-
if (MemTy != MVT::f16 && MemTy != MVT::v2f16 && MemTy != MVT::bf16 &&
1855+
if (MemTy != MVT::f16 && MemTy != MVT::v2f16 &&
1856+
MemTy != MVT::bf16 && MemTy != MVT::v2bf16 &&
18561857
(isa<ConstantSDNode>(Imm) || isa<ConstantFPSDNode>(Imm))) {
18571858
// Convert immediate to target constant
18581859
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)