1; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM 2; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB 3; rdar://10412592 4 5; Note: The Thumb code is being generated by the target-independent selector. 6 7define void @t1() nounwind { 8entry: 9; ARM: t1 10; THUMB: t1 11; ARM: mvn r0, #0 12; THUMB: movw r0, #65535 13; THUMB: movt r0, #65535 14 call void @foo(i32 -1) 15 ret void 16} 17 18declare void @foo(i32) 19 20define void @t2() nounwind { 21entry: 22; ARM: t2 23; THUMB: t2 24; ARM: mvn r0, #233 25; THUMB: movw r0, #65302 26; THUMB: movt r0, #65535 27 call void @foo(i32 -234) 28 ret void 29} 30 31define void @t3() nounwind { 32entry: 33; ARM: t3 34; THUMB: t3 35; ARM: mvn r0, #256 36; THUMB: movw r0, #65279 37; THUMB: movt r0, #65535 38 call void @foo(i32 -257) 39 ret void 40} 41 42; Load from constant pool 43define void @t4() nounwind { 44entry: 45; ARM: t4 46; THUMB: t4 47; ARM: ldr r0 48; THUMB: movw r0, #65278 49; THUMB: movt r0, #65535 50 call void @foo(i32 -258) 51 ret void 52} 53 54define void @t5() nounwind { 55entry: 56; ARM: t5 57; THUMB: t5 58; ARM: mvn r0, #65280 59; THUMB: movs r0, #255 60; THUMB: movt r0, #65535 61 call void @foo(i32 -65281) 62 ret void 63} 64 65define void @t6() nounwind { 66entry: 67; ARM: t6 68; THUMB: t6 69; ARM: mvn r0, #978944 70; THUMB: movw r0, #4095 71; THUMB: movt r0, #65521 72 call void @foo(i32 -978945) 73 ret void 74} 75 76define void @t7() nounwind { 77entry: 78; ARM: t7 79; THUMB: t7 80; ARM: mvn r0, #267386880 81; THUMB: movw r0, #65535 82; THUMB: movt r0, #61455 83 call void @foo(i32 -267386881) 84 ret void 85} 86 87define void @t8() nounwind { 88entry: 89; ARM: t8 90; THUMB: t8 91; ARM: mvn r0, #65280 92; THUMB: movs r0, #255 93; THUMB: movt r0, #65535 94 call void @foo(i32 -65281) 95 ret void 96} 97 98define void @t9() nounwind { 99entry: 100; ARM: t9 101; THUMB: t9 102; ARM: mvn r0, #2130706432 103; THUMB: movw r0, #65535 104; THUMB: movt r0, #33023 105 call void @foo(i32 -2130706433) 106 ret void 107} 108