<stg><name>sample_iterator_get_offset</name>


<trans_list>

<trans id="32" from="1" to="2">
<condition id="3">
<or_exp><and_exp></and_exp></or_exp>
</condition>
</trans>

<trans id="33" from="2" to="3">
<condition id="4">
<or_exp><and_exp></and_exp></or_exp>
</condition>
</trans>

<trans id="34" from="3" to="4">
<condition id="5">
<or_exp><and_exp></and_exp></or_exp>
</condition>
</trans>
</trans_list>



<state_list>

<state id="1" st_id="1">

<operation id="5" st_id="1" stage="1" lat="1">
<core>PLB46S</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="12" bw="16" op_0_bw="16" op_1_bw="16">
<![CDATA[
._crit_edge:6  %sample_length5 = call i16 @_ssdm_op_Read.ap_auto.i16(i16 %sample_length)

]]></node>
<StgValue><ssdm name="sample_length5"/></StgValue>
</operation>

<operation id="6" st_id="1" stage="1" lat="1">
<core>PLB46S</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="13" bw="32" op_0_bw="32" op_1_bw="32">
<![CDATA[
._crit_edge:7  %sample_buffer_size4 = call i32 @_ssdm_op_Read.ap_auto.i32(i32 %sample_buffer_size)

]]></node>
<StgValue><ssdm name="sample_buffer_size4"/></StgValue>
</operation>

<operation id="7" st_id="1" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="14" bw="16" op_0_bw="16" op_1_bw="16">
<![CDATA[
._crit_edge:8  %i_sample_read = call i16 @_ssdm_op_Read.ap_auto.i16(i16 %i_sample)

]]></node>
<StgValue><ssdm name="i_sample_read"/></StgValue>
</operation>

<operation id="8" st_id="1" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="15" bw="16" op_0_bw="16" op_1_bw="16">
<![CDATA[
._crit_edge:9  %i_index_read = call i16 @_ssdm_op_Read.ap_auto.i16(i16 %i_index)

]]></node>
<StgValue><ssdm name="i_index_read"/></StgValue>
</operation>

<operation id="9" st_id="1" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="16" bw="64" op_0_bw="16">
<![CDATA[
._crit_edge:10  %tmp = zext i16 %i_index_read to i64

]]></node>
<StgValue><ssdm name="tmp"/></StgValue>
</operation>

<operation id="10" st_id="1" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="17" bw="32" op_0_bw="32" op_1_bw="32">
<![CDATA[
._crit_edge:11  %indices_addr = getelementptr i56* %indices, i64 %tmp

]]></node>
<StgValue><ssdm name="indices_addr"/></StgValue>
</operation>

<operation id="11" st_id="1" stage="2" lat="2">
<core>PLB46M</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="18" bw="1" op_0_bw="1" op_1_bw="56" op_2_bw="32">
<![CDATA[
._crit_edge:12  %indices_load_req = call i1 @_ssdm_op_ReadReq.ap_bus.i56P(i56* %indices_addr, i32 1)

]]></node>
<StgValue><ssdm name="indices_load_req"/></StgValue>
</operation>
</state>

<state id="2" st_id="2">

<operation id="12" st_id="2" stage="1" lat="2">
<core>PLB46M</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="18" bw="1" op_0_bw="1" op_1_bw="56" op_2_bw="32">
<![CDATA[
._crit_edge:12  %indices_load_req = call i1 @_ssdm_op_ReadReq.ap_bus.i56P(i56* %indices_addr, i32 1)

]]></node>
<StgValue><ssdm name="indices_load_req"/></StgValue>
</operation>
</state>

<state id="3" st_id="3">

<operation id="13" st_id="3" stage="1" lat="1">
<core>PLB46M</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="19" bw="56" op_0_bw="56" op_1_bw="56">
<![CDATA[
._crit_edge:13  %indices_addr_read = call i56 @_ssdm_op_Read.ap_bus.i56P(i56* %indices_addr)

]]></node>
<StgValue><ssdm name="indices_addr_read"/></StgValue>
</operation>

<operation id="14" st_id="3" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="20" bw="32" op_0_bw="56">
<![CDATA[
._crit_edge:14  %tmp_9 = trunc i56 %indices_addr_read to i32

]]></node>
<StgValue><ssdm name="tmp_9"/></StgValue>
</operation>

<operation id="15" st_id="3" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="21" bw="8" op_0_bw="8" op_1_bw="56" op_2_bw="32" op_3_bw="32">
<![CDATA[
._crit_edge:15  %indices_stride_load_new = call i8 @_ssdm_op_PartSelect.i8.i56.i32.i32(i56 %indices_addr_read, i32 48, i32 55)

]]></node>
<StgValue><ssdm name="indices_stride_load_new"/></StgValue>
</operation>
</state>

<state id="4" st_id="4">

<operation id="16" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="6" bw="0" op_0_bw="0" op_1_bw="56" op_2_bw="8" op_3_bw="8" op_4_bw="8" op_5_bw="8" op_6_bw="8" op_7_bw="8">
<![CDATA[
._crit_edge:0  call void (...)* @_ssdm_op_SpecIFCore(i56* %indices, [1 x i8]* @p_str223, [7 x i8]* @p_str34, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="17" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="7" bw="0" op_0_bw="0" op_1_bw="56" op_2_bw="8" op_3_bw="32" op_4_bw="32" op_5_bw="32" op_6_bw="32" op_7_bw="8" op_8_bw="8" op_9_bw="8">
<![CDATA[
._crit_edge:1  call void (...)* @_ssdm_op_SpecBus(i56* %indices, [7 x i8]* @p_str28, i32 0, i32 0, i32 0, i32 10, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="18" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="8" bw="0" op_0_bw="0" op_1_bw="56" op_2_bw="8" op_3_bw="8" op_4_bw="8" op_5_bw="8" op_6_bw="8" op_7_bw="8">
<![CDATA[
._crit_edge:2  call void (...)* @_ssdm_op_SpecIFCore(i56* %indices, [1 x i8]* @p_str223, [7 x i8]* @p_str34, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="19" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="9" bw="0" op_0_bw="0" op_1_bw="16" op_2_bw="8" op_3_bw="8" op_4_bw="8" op_5_bw="8" op_6_bw="8" op_7_bw="8">
<![CDATA[
._crit_edge:3  call void (...)* @_ssdm_op_SpecIFCore(i16 %sample_length, [1 x i8]* @p_str223, [7 x i8]* @p_str32, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [17 x i8]* @p_str33)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="20" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="10" bw="0" op_0_bw="0" op_1_bw="32" op_2_bw="8" op_3_bw="8" op_4_bw="8" op_5_bw="8" op_6_bw="8" op_7_bw="8">
<![CDATA[
._crit_edge:4  call void (...)* @_ssdm_op_SpecIFCore(i32 %sample_buffer_size, [1 x i8]* @p_str223, [7 x i8]* @p_str32, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [17 x i8]* @p_str33)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="21" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="11" bw="0" op_0_bw="0" op_1_bw="56" op_2_bw="8" op_3_bw="32" op_4_bw="32" op_5_bw="32" op_6_bw="32" op_7_bw="8" op_8_bw="8" op_9_bw="8">
<![CDATA[
._crit_edge:5  call void (...)* @_ssdm_op_SpecBus(i56* %indices, [7 x i8]* @p_str28, i32 0, i32 0, i32 0, i32 10, [1 x i8]* @p_str223, [1 x i8]* @p_str223, [1 x i8]* @p_str223)

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>

<operation id="22" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="22" bw="24" op_0_bw="8">
<![CDATA[
._crit_edge:16  %tmp_cast = zext i8 %indices_stride_load_new to i24

]]></node>
<StgValue><ssdm name="tmp_cast"/></StgValue>
</operation>

<operation id="23" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="23" bw="24" op_0_bw="16">
<![CDATA[
._crit_edge:17  %tmp_5_cast = zext i16 %i_sample_read to i24

]]></node>
<StgValue><ssdm name="tmp_5_cast"/></StgValue>
</operation>

<operation id="24" st_id="4" stage="1" lat="1">
<core>Mul</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="24" bw="24" op_0_bw="24" op_1_bw="24">
<![CDATA[
._crit_edge:18  %tmp_6 = mul i24 %tmp_5_cast, %tmp_cast

]]></node>
<StgValue><ssdm name="tmp_6"/></StgValue>
</operation>

<operation id="25" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="25" bw="32" op_0_bw="24">
<![CDATA[
._crit_edge:19  %tmp_6_cast = zext i24 %tmp_6 to i32

]]></node>
<StgValue><ssdm name="tmp_6_cast"/></StgValue>
</operation>

<operation id="26" st_id="4" stage="1" lat="1">
<core>AddSub</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="26" bw="32" op_0_bw="32" op_1_bw="32">
<![CDATA[
._crit_edge:20  %offset = add i32 %tmp_6_cast, %tmp_9

]]></node>
<StgValue><ssdm name="offset"/></StgValue>
</operation>

<operation id="27" st_id="4" stage="1" lat="1">
<core>NULL</core>
<MemPortIdVec></MemPortIdVec>
<condition id="-1">
<or_exp><and_exp></and_exp></or_exp>
</condition>

<node id="27" bw="0" op_0_bw="32">
<![CDATA[
._crit_edge:21  ret i32 %offset

]]></node>
<StgValue><ssdm name=""/></StgValue>
</operation>
</state>
</state_list>


<ports>
<port id="35" name="i_index" dir="0" iftype="0">
<core>NULL</core><StgValue><ssdm name="i_index"/></StgValue>
</port>
<port id="36" name="i_sample" dir="0" iftype="0">
<core>NULL</core><StgValue><ssdm name="i_sample"/></StgValue>
</port>
<port id="37" name="indices" dir="0" iftype="4">
<core>PLB46M</core><StgValue><ssdm name="indices"/></StgValue>
</port>
<port id="38" name="sample_buffer_size" dir="0" iftype="0">
<core>PLB46S</core><StgValue><ssdm name="sample_buffer_size"/></StgValue>
</port>
<port id="39" name="sample_length" dir="0" iftype="0">
<core>PLB46S</core><StgValue><ssdm name="sample_length"/></StgValue>
</port>
</ports>


<dataflows>
<dataflow id="41" from="_ssdm_op_Read.ap_auto.i16" to="sample_length5" fromId="40" toId="5">
</dataflow>
<dataflow id="42" from="sample_length" to="sample_length5" fromId="39" toId="5">
</dataflow>
<dataflow id="44" from="_ssdm_op_Read.ap_auto.i32" to="sample_buffer_size4" fromId="43" toId="6">
</dataflow>
<dataflow id="45" from="sample_buffer_size" to="sample_buffer_size4" fromId="38" toId="6">
</dataflow>
<dataflow id="46" from="_ssdm_op_Read.ap_auto.i16" to="i_sample_read" fromId="40" toId="7">
</dataflow>
<dataflow id="47" from="i_sample" to="i_sample_read" fromId="36" toId="7">
</dataflow>
<dataflow id="48" from="_ssdm_op_Read.ap_auto.i16" to="i_index_read" fromId="40" toId="8">
</dataflow>
<dataflow id="49" from="i_index" to="i_index_read" fromId="35" toId="8">
</dataflow>
<dataflow id="50" from="i_index_read" to="tmp" fromId="8" toId="9">
</dataflow>
<dataflow id="51" from="indices" to="indices_addr" fromId="37" toId="10">
</dataflow>
<dataflow id="52" from="tmp" to="indices_addr" fromId="9" toId="10">
</dataflow>
<dataflow id="54" from="_ssdm_op_ReadReq.ap_bus.i56P" to="indices_load_req" fromId="53" toId="11">
</dataflow>
<dataflow id="55" from="indices_addr" to="indices_load_req" fromId="10" toId="11">
</dataflow>
<dataflow id="57" from="stg_56" to="indices_load_req" fromId="56" toId="11">
</dataflow>
<dataflow id="58" from="_ssdm_op_ReadReq.ap_bus.i56P" to="indices_load_req" fromId="53" toId="12">
</dataflow>
<dataflow id="59" from="indices_addr" to="indices_load_req" fromId="10" toId="12">
</dataflow>
<dataflow id="60" from="stg_56" to="indices_load_req" fromId="56" toId="12">
</dataflow>
<dataflow id="62" from="_ssdm_op_Read.ap_bus.i56P" to="indices_addr_read" fromId="61" toId="13">
</dataflow>
<dataflow id="63" from="indices_addr" to="indices_addr_read" fromId="10" toId="13">
</dataflow>
<dataflow id="64" from="indices_addr_read" to="tmp_9" fromId="13" toId="14">
</dataflow>
<dataflow id="66" from="_ssdm_op_PartSelect.i8.i56.i32.i32" to="indices_stride_load_new" fromId="65" toId="15">
</dataflow>
<dataflow id="67" from="indices_addr_read" to="indices_stride_load_new" fromId="13" toId="15">
</dataflow>
<dataflow id="69" from="stg_68" to="indices_stride_load_new" fromId="68" toId="15">
</dataflow>
<dataflow id="71" from="stg_70" to="indices_stride_load_new" fromId="70" toId="15">
</dataflow>
<dataflow id="73" from="_ssdm_op_SpecIFCore" to="stg_16" fromId="72" toId="16">
</dataflow>
<dataflow id="74" from="indices" to="stg_16" fromId="37" toId="16">
</dataflow>
<dataflow id="76" from="p_str223" to="stg_16" fromId="75" toId="16">
</dataflow>
<dataflow id="78" from="p_str34" to="stg_16" fromId="77" toId="16">
</dataflow>
<dataflow id="79" from="p_str223" to="stg_16" fromId="75" toId="16">
</dataflow>
<dataflow id="80" from="p_str223" to="stg_16" fromId="75" toId="16">
</dataflow>
<dataflow id="81" from="p_str223" to="stg_16" fromId="75" toId="16">
</dataflow>
<dataflow id="82" from="p_str223" to="stg_16" fromId="75" toId="16">
</dataflow>
<dataflow id="84" from="_ssdm_op_SpecBus" to="stg_17" fromId="83" toId="17">
</dataflow>
<dataflow id="85" from="indices" to="stg_17" fromId="37" toId="17">
</dataflow>
<dataflow id="87" from="p_str28" to="stg_17" fromId="86" toId="17">
</dataflow>
<dataflow id="89" from="stg_88" to="stg_17" fromId="88" toId="17">
</dataflow>
<dataflow id="90" from="stg_88" to="stg_17" fromId="88" toId="17">
</dataflow>
<dataflow id="91" from="stg_88" to="stg_17" fromId="88" toId="17">
</dataflow>
<dataflow id="93" from="stg_92" to="stg_17" fromId="92" toId="17">
</dataflow>
<dataflow id="94" from="p_str223" to="stg_17" fromId="75" toId="17">
</dataflow>
<dataflow id="95" from="p_str223" to="stg_17" fromId="75" toId="17">
</dataflow>
<dataflow id="96" from="p_str223" to="stg_17" fromId="75" toId="17">
</dataflow>
<dataflow id="97" from="_ssdm_op_SpecIFCore" to="stg_18" fromId="72" toId="18">
</dataflow>
<dataflow id="98" from="indices" to="stg_18" fromId="37" toId="18">
</dataflow>
<dataflow id="99" from="p_str223" to="stg_18" fromId="75" toId="18">
</dataflow>
<dataflow id="100" from="p_str34" to="stg_18" fromId="77" toId="18">
</dataflow>
<dataflow id="101" from="p_str223" to="stg_18" fromId="75" toId="18">
</dataflow>
<dataflow id="102" from="p_str223" to="stg_18" fromId="75" toId="18">
</dataflow>
<dataflow id="103" from="p_str223" to="stg_18" fromId="75" toId="18">
</dataflow>
<dataflow id="104" from="p_str223" to="stg_18" fromId="75" toId="18">
</dataflow>
<dataflow id="105" from="_ssdm_op_SpecIFCore" to="stg_19" fromId="72" toId="19">
</dataflow>
<dataflow id="106" from="sample_length" to="stg_19" fromId="39" toId="19">
</dataflow>
<dataflow id="107" from="p_str223" to="stg_19" fromId="75" toId="19">
</dataflow>
<dataflow id="109" from="p_str32" to="stg_19" fromId="108" toId="19">
</dataflow>
<dataflow id="110" from="p_str223" to="stg_19" fromId="75" toId="19">
</dataflow>
<dataflow id="111" from="p_str223" to="stg_19" fromId="75" toId="19">
</dataflow>
<dataflow id="112" from="p_str223" to="stg_19" fromId="75" toId="19">
</dataflow>
<dataflow id="114" from="p_str33" to="stg_19" fromId="113" toId="19">
</dataflow>
<dataflow id="115" from="_ssdm_op_SpecIFCore" to="stg_20" fromId="72" toId="20">
</dataflow>
<dataflow id="116" from="sample_buffer_size" to="stg_20" fromId="38" toId="20">
</dataflow>
<dataflow id="117" from="p_str223" to="stg_20" fromId="75" toId="20">
</dataflow>
<dataflow id="118" from="p_str32" to="stg_20" fromId="108" toId="20">
</dataflow>
<dataflow id="119" from="p_str223" to="stg_20" fromId="75" toId="20">
</dataflow>
<dataflow id="120" from="p_str223" to="stg_20" fromId="75" toId="20">
</dataflow>
<dataflow id="121" from="p_str223" to="stg_20" fromId="75" toId="20">
</dataflow>
<dataflow id="122" from="p_str33" to="stg_20" fromId="113" toId="20">
</dataflow>
<dataflow id="123" from="_ssdm_op_SpecBus" to="stg_21" fromId="83" toId="21">
</dataflow>
<dataflow id="124" from="indices" to="stg_21" fromId="37" toId="21">
</dataflow>
<dataflow id="125" from="p_str28" to="stg_21" fromId="86" toId="21">
</dataflow>
<dataflow id="126" from="stg_88" to="stg_21" fromId="88" toId="21">
</dataflow>
<dataflow id="127" from="stg_88" to="stg_21" fromId="88" toId="21">
</dataflow>
<dataflow id="128" from="stg_88" to="stg_21" fromId="88" toId="21">
</dataflow>
<dataflow id="129" from="stg_92" to="stg_21" fromId="92" toId="21">
</dataflow>
<dataflow id="130" from="p_str223" to="stg_21" fromId="75" toId="21">
</dataflow>
<dataflow id="131" from="p_str223" to="stg_21" fromId="75" toId="21">
</dataflow>
<dataflow id="132" from="p_str223" to="stg_21" fromId="75" toId="21">
</dataflow>
<dataflow id="133" from="indices_stride_load_new" to="tmp_cast" fromId="15" toId="22">
</dataflow>
<dataflow id="134" from="i_sample_read" to="tmp_5_cast" fromId="7" toId="23">
</dataflow>
<dataflow id="135" from="tmp_5_cast" to="tmp_6" fromId="23" toId="24">
</dataflow>
<dataflow id="136" from="tmp_cast" to="tmp_6" fromId="22" toId="24">
</dataflow>
<dataflow id="137" from="tmp_6" to="tmp_6_cast" fromId="24" toId="25">
</dataflow>
<dataflow id="138" from="tmp_6_cast" to="offset" fromId="25" toId="26">
</dataflow>
<dataflow id="139" from="tmp_9" to="offset" fromId="14" toId="26">
</dataflow>
<dataflow id="140" from="offset" to="stg_27" fromId="26" toId="27">
</dataflow>
</dataflows>


</stg>
