"outputs=(), name='st')",
])
+ def test_pre_ra_insert_copies(self):
+ fn, _arg = self.make_add_fn()
+ fn.pre_ra_insert_copies()
+ self.assertEqual([repr(i) for i in fn.ops], [
+ "Op(kind=OpKind.FuncArgR3, "
+ "inputs=[], "
+ "immediates=[], "
+ "outputs=(<arg#0: <I64>>,), name='arg')",
+ "Op(kind=OpKind.CopyFromReg, "
+ "inputs=[<arg#0: <I64>>], "
+ "immediates=[], "
+ "outputs=(<2#0: <I64>>,), name='2')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<vl#0: <VL_MAXVL>>,), name='vl')",
+ "Op(kind=OpKind.CopyToReg, "
+ "inputs=[<2#0: <I64>>], "
+ "immediates=[], "
+ "outputs=(<3#0: <I64>>,), name='3')",
+ "Op(kind=OpKind.SvLd, "
+ "inputs=[<3#0: <I64>>, <vl#0: <VL_MAXVL>>], "
+ "immediates=[0], "
+ "outputs=(<ld#0: <I64*32>>,), name='ld')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<4#0: <VL_MAXVL>>,), name='4')",
+ "Op(kind=OpKind.VecCopyFromReg, "
+ "inputs=[<ld#0: <I64*32>>, <4#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<5#0: <I64*32>>,), name='5')",
+ "Op(kind=OpKind.SvLI, "
+ "inputs=[<vl#0: <VL_MAXVL>>], "
+ "immediates=[0], "
+ "outputs=(<li#0: <I64*32>>,), name='li')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<6#0: <VL_MAXVL>>,), name='6')",
+ "Op(kind=OpKind.VecCopyFromReg, "
+ "inputs=[<li#0: <I64*32>>, <6#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<7#0: <I64*32>>,), name='7')",
+ "Op(kind=OpKind.SetCA, "
+ "inputs=[], "
+ "immediates=[], "
+ "outputs=(<ca#0: <CA>>,), name='ca')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<8#0: <VL_MAXVL>>,), name='8')",
+ "Op(kind=OpKind.VecCopyToReg, "
+ "inputs=[<5#0: <I64*32>>, <8#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<9#0: <I64*32>>,), name='9')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<10#0: <VL_MAXVL>>,), name='10')",
+ "Op(kind=OpKind.VecCopyToReg, "
+ "inputs=[<7#0: <I64*32>>, <10#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<11#0: <I64*32>>,), name='11')",
+ "Op(kind=OpKind.SvAddE, "
+ "inputs=[<9#0: <I64*32>>, <11#0: <I64*32>>, <ca#0: <CA>>, "
+ "<vl#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<add#0: <I64*32>>, <add#1: <CA>>), name='add')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<12#0: <VL_MAXVL>>,), name='12')",
+ "Op(kind=OpKind.VecCopyFromReg, "
+ "inputs=[<add#0: <I64*32>>, <12#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<13#0: <I64*32>>,), name='13')",
+ "Op(kind=OpKind.SetVLI, "
+ "inputs=[], "
+ "immediates=[32], "
+ "outputs=(<14#0: <VL_MAXVL>>,), name='14')",
+ "Op(kind=OpKind.VecCopyToReg, "
+ "inputs=[<13#0: <I64*32>>, <14#0: <VL_MAXVL>>], "
+ "immediates=[], "
+ "outputs=(<15#0: <I64*32>>,), name='15')",
+ "Op(kind=OpKind.CopyToReg, "
+ "inputs=[<2#0: <I64>>], "
+ "immediates=[], "
+ "outputs=(<16#0: <I64>>,), name='16')",
+ "Op(kind=OpKind.SvStd, "
+ "inputs=[<15#0: <I64*32>>, <16#0: <I64>>, <vl#0: <VL_MAXVL>>], "
+ "immediates=[0], "
+ "outputs=(), name='st')",
+ ])
+
def test_sim(self):
fn, arg = self.make_add_fn()
addr = 0x100