145 lines · plain
1; RUN: llc -mtriple=avr -filetype=asm -O1 < %s | FileCheck %s2 3define void @check60(ptr %1) {4; CHECK-LABEL: check60:5; CHECK-NEXT: %bb.06; CHECK-NEXT: mov r30, r247; CHECK-NEXT: mov r31, r258; CHECK-NEXT: ldd r24, Z+609; CHECK-NEXT: ldd r25, Z+6110; CHECK-NEXT: ldd r18, Z+6211; CHECK-NEXT: ldd r19, Z+6312; CHECK-NEXT: sts 3, r1913; CHECK-NEXT: sts 2, r1814; CHECK-NEXT: sts 1, r2515; CHECK-NEXT: sts 0, r2416; CHECK-NEXT: ret17 18bb0:19 %2 = getelementptr i8, ptr %1, i16 6020 %3 = load i32, ptr %2, align 121 store i32 %3, ptr null, align 122 ret void23}24 25define void @check61(ptr %1) {26; CHECK-LABEL: check61:27; CHECK-NEXT: %bb.028; CHECK-NEXT: mov r30, r2429; CHECK-NEXT: mov r31, r2530; CHECK-NEXT: ldd r18, Z+6131; CHECK-NEXT: ldd r19, Z+6232; CHECK-NEXT: adiw r24, 6333; CHECK-NEXT: mov r30, r2434; CHECK-NEXT: mov r31, r2535; CHECK-NEXT: ld r24, Z36; CHECK-NEXT: ldd r25, Z+137; CHECK-NEXT: sts 3, r2538; CHECK-NEXT: sts 2, r2439; CHECK-NEXT: sts 1, r1940; CHECK-NEXT: sts 0, r1841; CHECK-NEXT: ret42 43bb0:44 %2 = getelementptr i8, ptr %1, i16 6145 %3 = load i32, ptr %2, align 146 store i32 %3, ptr null, align 147 ret void48}49 50define void @check62(ptr %1) {51; CHECK-LABEL: check62:52; CHECK-NEXT: %bb.053; CHECK-NEXT: mov r30, r2454; CHECK-NEXT: mov r31, r2555; CHECK-NEXT: ldd r18, Z+6256; CHECK-NEXT: ldd r19, Z+6357; CHECK-NEXT: adiw r24, 6258; CHECK-NEXT: mov r30, r2459; CHECK-NEXT: mov r31, r2560; CHECK-NEXT: ldd r24, Z+261; CHECK-NEXT: ldd r25, Z+362; CHECK-NEXT: sts 3, r2563; CHECK-NEXT: sts 2, r2464; CHECK-NEXT: sts 1, r1965; CHECK-NEXT: sts 0, r1866; CHECK-NEXT: ret67 68bb0:69 %2 = getelementptr i8, ptr %1, i16 6270 %3 = load i32, ptr %2, align 171 store i32 %3, ptr null, align 172 ret void73}74 75define void @check63(ptr %1) {76; CHECK-LABEL: check63:77; CHECK-NEXT: %bb.078; CHECK-NEXT: adiw r24, 6379; CHECK-NEXT: mov r30, r2480; CHECK-NEXT: mov r31, r2581; CHECK-NEXT: ld r24, Z82; CHECK-NEXT: ldd r25, Z+183; CHECK-NEXT: ldd r18, Z+284; CHECK-NEXT: ldd r19, Z+385; CHECK-NEXT: sts 3, r1986; CHECK-NEXT: sts 2, r1887; CHECK-NEXT: sts 1, r2588; CHECK-NEXT: sts 0, r2489; CHECK-NEXT: ret90 91bb0:92 %2 = getelementptr i8, ptr %1, i16 6393 %3 = load i32, ptr %2, align 194 store i32 %3, ptr null, align 195 ret void96}97 98define void @check64(ptr %1) {99; CHECK-LABEL: check64:100; CHECK-NEXT: %bb.0101; CHECK-NEXT: subi r24, 192102; CHECK-NEXT: sbci r25, 255103; CHECK-NEXT: mov r30, r24104; CHECK-NEXT: mov r31, r25105; CHECK-NEXT: ld r24, Z106; CHECK-NEXT: ldd r25, Z+1107; CHECK-NEXT: ldd r18, Z+2108; CHECK-NEXT: ldd r19, Z+3109; CHECK-NEXT: sts 3, r19110; CHECK-NEXT: sts 2, r18111; CHECK-NEXT: sts 1, r25112; CHECK-NEXT: sts 0, r24113; CHECK-NEXT: ret114 115bb0:116 %2 = getelementptr i8, ptr %1, i16 64117 %3 = load i32, ptr %2, align 1118 store i32 %3, ptr null, align 1119 ret void120}121 122define void @check65(ptr %1) {123; CHECK-LABEL: check65:124; CHECK-NEXT: %bb.0125; CHECK-NEXT: subi r24, 191126; CHECK-NEXT: sbci r25, 255127; CHECK-NEXT: mov r30, r24128; CHECK-NEXT: mov r31, r25129; CHECK-NEXT: ld r24, Z130; CHECK-NEXT: ldd r25, Z+1131; CHECK-NEXT: ldd r18, Z+2132; CHECK-NEXT: ldd r19, Z+3133; CHECK-NEXT: sts 3, r19134; CHECK-NEXT: sts 2, r18135; CHECK-NEXT: sts 1, r25136; CHECK-NEXT: sts 0, r24137; CHECK-NEXT: ret138 139bb0:140 %2 = getelementptr i8, ptr %1, i16 65141 %3 = load i32, ptr %2, align 1142 store i32 %3, ptr null, align 1143 ret void144}145