This is the #ARM #documentation for the MOV32 pseudo-instruction consisting of MOV (now we call it movw) and #MOVT.
#ARM #asm has movt and movw instructions in later Thumb2 versions; these permit you to load a 32-bit constant in two instructions, each supplying 16 bits. movw clears the high bits and movt loads them. This question pertains to #Clang needing -mthumb to assemble Thumb asm. #movt
Raymond Chen’s #ARM #asm #tutorial. Section on loading constants in one instruction, with mov, mvn, #movt, shifts, rotates, etc. This is the thing to read to understand how to generate constants on ARM, especially Thumb. “You can take your 8-bit unsigned immediate and shift it left by up to 24 positions, thereby allowing you to create any 32-bit constant where the span from the lowest to highest set bit is at most 8 positions. There are also a few special transformations (...) handy for setting up a register to fill memory with a repeating pattern. (...) In addition to all of the special constants that can be generated with MOV, you can use the MVN instruction to generate the bitwise NOT of them all.”