1. A method of compiling high-level software instructions to generate low-level software instructions, the method comprising: identifying, with a computing device, a set of high-level (HL) control flow (CF) instructions having one or more associated texture load instructions, wherein execution of the one or more texture load instructions causes a texture to be loaded to memory and, wherein the set of HL CF instructions comprises one or more branches; determining whether the one or more associated texture load instructions are symmetric or approximately symmetric with respect to the number of texture load instructions associated with the one or more branches; based on the one or more texture load instructions being symmetric or approximately symmetric, converting, with the computing device, the identified set of HL CF instructions to low-level (LL) instructions having a predicate structure, wherein the LL instructions having the predicate structure are executable without branching; based on the texture load instructions not being symmetric or approximately symmetric, refraining from converting the identified set of HL CF instructions such that the HL CF instructions are unconverted; and outputting the converted LL instructions having the predicate structure or the unconverted set of HL CF instructions.