The A64 instruction set used when a core is in AArch64 state is not an extension to the existing A32/T32 instruction sets, but a completely new instruction set. So while technically it may have been possible to stuff both AArch32 and AArch64 instruction sets into the same gcc compiler binary, this was not considered worthwhile by the gcc developers.