1. A method for coalescing fetch requests for multiple data classes, comprising: receiving a plurality of fetch requests in an instruction stream first-in first-out (FIFO) buffer stored in a memory; aligning the plurality of fetch requests to a preferred memory alignment based on the width of the memory to produce one or more aligned fetch requests; unrolling the one or more aligned fetch requests to produce one or more unrolled fetch requests, wherein each unrolled fetch request is less than or equal to a maximum fetch request size; for each data class in a plurality of data classes: combining any two or more sequential unrolled fetch requests associated with the data class to produce one or more coalesced fetch requests for the data class, and fetching data specified by the coalesced fetch request from the memory; and outputting an instruction stream that includes the data associated with each coalesced fetch request, wherein the instruction stream is ordered according to the order the plurality of fetch requests were received.