Index: lib/Target/NVPTX/NVPTXInstrInfo.td =================================================================== --- lib/Target/NVPTX/NVPTXInstrInfo.td +++ lib/Target/NVPTX/NVPTXInstrInfo.td @@ -1795,8 +1795,9 @@ []>; class StoreParamV4Inst : - NVPTXInst<(outs), (ins regclass:$val, regclass:$val1, regclass:$val2, - regclass:$val3, i32imm:$a, i32imm:$b), + NVPTXInst<(outs), (ins regclass:$val, regclass:$val2, regclass:$val3, + regclass:$val4, i32imm:$a, + i32imm:$b), !strconcat("st.param.v4", opstr, "\t[param$a+$b], {{$val, $val2, $val3, $val4}};"), []>; @@ -1897,37 +1898,15 @@ def StoreParamV2I16 : StoreParamV2Inst; def StoreParamV2I8 : StoreParamV2Inst; -// FIXME: StoreParamV4Inst crashes llvm-tblgen :( -//def StoreParamV4I32 : StoreParamV4Inst; -def StoreParamV4I32 : - NVPTXInst<(outs), (ins Int32Regs:$val, Int32Regs:$val2, Int32Regs:$val3, - Int32Regs:$val4, i32imm:$a, i32imm:$b), - "st.param.v4.b32\t[param$a+$b], {{$val, $val2, $val3, $val4}};", - []>; - -def StoreParamV4I16 : - NVPTXInst<(outs), (ins Int16Regs:$val, Int16Regs:$val2, Int16Regs:$val3, - Int16Regs:$val4, i32imm:$a, i32imm:$b), - "st.param.v4.b16\t[param$a+$b], {{$val, $val2, $val3, $val4}};", - []>; - -def StoreParamV4I8 : - NVPTXInst<(outs), (ins Int16Regs:$val, Int16Regs:$val2, Int16Regs:$val3, - Int16Regs:$val4, i32imm:$a, i32imm:$b), - "st.param.v4.b8\t[param$a+$b], {{$val, $val2, $val3, $val4}};", - []>; +def StoreParamV4I32 : StoreParamV4Inst; +def StoreParamV4I16 : StoreParamV4Inst; +def StoreParamV4I8 : StoreParamV4Inst; def StoreParamF32 : StoreParamInst; def StoreParamF64 : StoreParamInst; def StoreParamV2F32 : StoreParamV2Inst; def StoreParamV2F64 : StoreParamV2Inst; -// FIXME: StoreParamV4Inst crashes llvm-tblgen :( -//def StoreParamV4F32 : StoreParamV4Inst; -def StoreParamV4F32 : - NVPTXInst<(outs), (ins Float32Regs:$val, Float32Regs:$val2, Float32Regs:$val3, - Float32Regs:$val4, i32imm:$a, i32imm:$b), - "st.param.v4.f32\t[param$a+$b], {{$val, $val2, $val3, $val4}};", - []>; +def StoreParamV4F32 : StoreParamV4Inst; def StoreRetvalI64 : StoreRetvalInst; def StoreRetvalI32 : StoreRetvalInst;