1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -O2 -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefix=ASM32 %s 3; RUN: llc -O2 -mtriple powerpc-ibm-aix-xcoff -mcpu=ppc -stop-after=machine-cp -verify-machineinstrs < %s | FileCheck --check-prefix=32BIT %s 4 5define i32 @int_va_arg(i32 %a, ...) local_unnamed_addr { 6; ASM32-LABEL: int_va_arg: 7; ASM32: # %bb.0: # %entry 8; ASM32-NEXT: addi 11, 1, 28 9; ASM32-NEXT: stw 4, 28(1) 10; ASM32-NEXT: addi 4, 1, 32 11; ASM32-NEXT: stw 6, 36(1) 12; ASM32-NEXT: stw 11, -4(1) 13; ASM32-NEXT: stw 11, -8(1) 14; ASM32-NEXT: stw 4, -4(1) 15; ASM32-NEXT: lwz 6, 28(1) 16; ASM32-NEXT: stw 4, -8(1) 17; ASM32-NEXT: add 3, 6, 3 18; ASM32-NEXT: lwz 4, 28(1) 19; ASM32-NEXT: slwi 4, 4, 1 20; ASM32-NEXT: stw 7, 40(1) 21; ASM32-NEXT: add 3, 3, 4 22; ASM32-NEXT: stw 8, 44(1) 23; ASM32-NEXT: stw 9, 48(1) 24; ASM32-NEXT: stw 10, 52(1) 25; ASM32-NEXT: stw 5, 32(1) 26; ASM32-NEXT: blr 27entry: 28 %arg1 = alloca ptr, align 4 29 %arg2 = alloca ptr, align 4 30 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg1) 31 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg2) 32 call void @llvm.va_start(ptr nonnull %arg1) 33 call void @llvm.va_copy(ptr nonnull %arg2, ptr nonnull %arg1) 34 %argp.cur = load ptr, ptr %arg1, align 4 35 %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4 36 store ptr %argp.next, ptr %arg1, align 4 37 %0 = load i32, ptr %argp.cur, align 4 38 %add = add nsw i32 %0, %a 39 %argp.cur2 = load ptr, ptr %arg2, align 4 40 %argp.next3 = getelementptr inbounds i8, ptr %argp.cur2, i32 4 41 store ptr %argp.next3, ptr %arg2, align 4 42 %1 = load i32, ptr %argp.cur2, align 4 43 %mul = shl i32 %1, 1 44 %add4 = add nsw i32 %add, %mul 45 call void @llvm.va_end(ptr nonnull %arg1) 46 call void @llvm.va_end(ptr nonnull %arg2) 47 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg2) 48 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg1) 49 ret i32 %add4 50} 51 52; 32BIT-LABEL: name: int_va_arg 53; 32BIT-LABEL: liveins: 54; 32BIT-DAG: - { reg: '$r3', virtual-reg: '' } 55; 32BIT-DAG: - { reg: '$r4', virtual-reg: '' } 56; 32BIT-DAG: - { reg: '$r5', virtual-reg: '' } 57; 32BIT-DAG: - { reg: '$r6', virtual-reg: '' } 58; 32BIT-DAG: - { reg: '$r7', virtual-reg: '' } 59; 32BIT-DAG: - { reg: '$r8', virtual-reg: '' } 60; 32BIT-DAG: - { reg: '$r9', virtual-reg: '' } 61; 32BIT-DAG: - { reg: '$r10', virtual-reg: '' } 62 63; 32BIT-LABEL: fixedStack: 64; 32BIT-DAG: - { id: 0, type: default, offset: 28, size: 4 65 66; 32BIT-LABEL: stack: 67; 32BIT-DAG: - { id: 0, name: arg1, type: default, offset: 0, size: 4 68; 32BIT-DAG: - { id: 1, name: arg2, type: default, offset: 0, size: 4 69 70; 32BIT-LABEL: body: | 71; 32BIT-DAG: liveins: $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10 72; 32BIT-DAG: STW killed renamable $r4, 0, %fixed-stack.0 :: (store (s32) into %fixed-stack.0) 73; 32BIT-DAG: STW killed renamable $r5, 4, %fixed-stack.0 :: (store (s32) into %fixed-stack.0 + 4) 74; 32BIT-DAG: STW killed renamable $r6, 8, %fixed-stack.0 :: (store (s32)) 75; 32BIT-DAG: STW killed renamable $r7, 12, %fixed-stack.0 :: (store (s32)) 76; 32BIT-DAG: STW killed renamable $r8, 16, %fixed-stack.0 :: (store (s32)) 77; 32BIT-DAG: STW killed renamable $r9, 20, %fixed-stack.0 :: (store (s32)) 78; 32BIT-DAG: STW killed renamable $r10, 24, %fixed-stack.0 :: (store (s32)) 79; 32BIT-DAG: STW killed renamable $r4, 0, %stack.1.arg2 :: (store (s32) into %ir.arg2) 80; 32BIT-DAG: renamable $r4 = ADDI %fixed-stack.0, 4 81; 32BIT-DAG: STW killed renamable $r11, 0, %stack.1.arg2 :: (store (s32) into %ir.arg2) 82; 32BIT-DAG: renamable $r11 = ADDI %fixed-stack.0, 0 83; 32BIT-DAG: STW renamable $r11, 0, %stack.0.arg1 :: (store (s32) into %ir.arg1) 84; 32BIT-DAG: STW renamable $r4, 0, %stack.0.arg1 :: (store (s32) into %ir.arg1) 85; 32BIT-DAG: renamable $r6 = LWZ 0, %fixed-stack.0 :: (load (s32) from %ir.argp.cur) 86; 32BIT-DAG: renamable $r4 = LWZ 0, %fixed-stack.0 :: (load (s32) from %ir.argp.cur2) 87; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r6, killed renamable $r3 88; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r4 89; 32BIT-DAG: BLR implicit $lr, implicit $rm, implicit $r3 90 91declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) 92declare void @llvm.va_start(ptr) 93declare void @llvm.va_copy(ptr, ptr) 94declare void @llvm.va_end(ptr) 95declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) 96 97define i32 @int_stack_va_arg(i32 %one, i32 %two, i32 %three, i32 %four, i32 %five, i32 %six, i32 %seven, i32 %eight, ...) local_unnamed_addr { 98; ASM32-LABEL: int_stack_va_arg: 99; ASM32: # %bb.0: # %entry 100; ASM32-NEXT: add 3, 4, 3 101; ASM32-NEXT: lwz 4, 56(1) 102; ASM32-NEXT: li 11, 4 103; ASM32-NEXT: add 3, 3, 5 104; ASM32-NEXT: addi 12, 1, 56 105; ASM32-NEXT: add 3, 3, 6 106; ASM32-NEXT: rlwimi 12, 11, 0, 29, 29 107; ASM32-NEXT: stw 12, -4(1) 108; ASM32-NEXT: add 3, 3, 7 109; ASM32-NEXT: add 3, 3, 8 110; ASM32-NEXT: add 3, 3, 9 111; ASM32-NEXT: add 3, 3, 10 112; ASM32-NEXT: add 3, 3, 4 113; ASM32-NEXT: slwi 4, 4, 1 114; ASM32-NEXT: add 3, 3, 4 115; ASM32-NEXT: blr 116entry: 117 %arg1 = alloca ptr, align 4 118 %arg2 = alloca ptr, align 4 119 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg1) 120 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg2) 121 call void @llvm.va_start(ptr nonnull %arg1) 122 call void @llvm.va_copy(ptr nonnull %arg2, ptr nonnull %arg1) 123 %add = add nsw i32 %two, %one 124 %add2 = add nsw i32 %add, %three 125 %add3 = add nsw i32 %add2, %four 126 %add4 = add nsw i32 %add3, %five 127 %add5 = add nsw i32 %add4, %six 128 %add6 = add nsw i32 %add5, %seven 129 %add7 = add nsw i32 %add6, %eight 130 %argp.cur = load ptr, ptr %arg1, align 4 131 %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4 132 store ptr %argp.next, ptr %arg1, align 4 133 %0 = load i32, ptr %argp.cur, align 4 134 %add8 = add nsw i32 %add7, %0 135 %argp.cur9 = load ptr, ptr %arg2, align 4 136 %argp.next10 = getelementptr inbounds i8, ptr %argp.cur9, i32 4 137 store ptr %argp.next10, ptr %arg2, align 4 138 %1 = load i32, ptr %argp.cur9, align 4 139 %mul = shl i32 %1, 1 140 %add11 = add nsw i32 %add8, %mul 141 call void @llvm.va_end(ptr nonnull %arg1) 142 call void @llvm.va_end(ptr nonnull %arg2) 143 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg2) 144 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg1) 145 ret i32 %add11 146} 147 148; 32BIT-LABEL: name: int_stack_va_arg 149; 32BIT-LABEL: liveins: 150; 32BIT-DAG: - { reg: '$r3', virtual-reg: '' } 151; 32BIT-DAG: - { reg: '$r4', virtual-reg: '' } 152; 32BIT-DAG: - { reg: '$r5', virtual-reg: '' } 153; 32BIT-DAG: - { reg: '$r6', virtual-reg: '' } 154; 32BIT-DAG: - { reg: '$r7', virtual-reg: '' } 155; 32BIT-DAG: - { reg: '$r8', virtual-reg: '' } 156; 32BIT-DAG: - { reg: '$r9', virtual-reg: '' } 157; 32BIT-DAG: - { reg: '$r10', virtual-reg: '' } 158 159; 32BIT-LABEL: fixedStack: 160; 32BIT-DAG: - { id: 0, type: default, offset: 56, size: 4 161 162; 32BIT-LABEL: stack: 163; 32BIT-DAG: - { id: 0, name: arg1, type: default, offset: 0, size: 4 164; 32BIT-DAG: - { id: 1, name: arg2, type: default, offset: 0, size: 4 165 166; 32BIT-LABEL: body: | 167; 32BIT-DAG: liveins: $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10 168; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r4 169; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r5 170; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r6 171; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r7 172; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r8 173; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r9 174; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r10 175; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r4, killed renamable $r3 176; 32BIT-DAG: renamable $r4 = ADDI %fixed-stack.0, 0 177; 32BIT-DAG: STW killed renamable $r4, 0, %stack.0.arg1 :: (store (s32) into %ir.arg1) 178; 32BIT-DAG: renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r4 179; 32BIT-DAG: renamable $r4 = LWZ 0, %fixed-stack.0 :: (load (s32) from %ir.argp.cur9, align 8) 180; 32BIT-DAG: renamable $r11 = LI 4 181; 32BIT-DAG: BLR implicit $lr, implicit $rm, implicit $r3 182 183define double @double_va_arg(double %a, ...) local_unnamed_addr { 184; ASM32-LABEL: double_va_arg: 185; ASM32: # %bb.0: # %entry 186; ASM32-NEXT: stw 5, -16(1) 187; ASM32-NEXT: addi 3, 1, 32 188; ASM32-NEXT: stw 6, -12(1) 189; ASM32-NEXT: lfd 0, -16(1) 190; ASM32-NEXT: stw 5, -24(1) 191; ASM32-NEXT: fadd 0, 0, 1 192; ASM32-NEXT: stw 6, -20(1) 193; ASM32-NEXT: lfd 1, -24(1) 194; ASM32-NEXT: fadd 1, 1, 1 195; ASM32-NEXT: stw 7, 40(1) 196; ASM32-NEXT: fadd 1, 0, 1 197; ASM32-NEXT: stw 5, 32(1) 198; ASM32-NEXT: stw 6, 36(1) 199; ASM32-NEXT: stw 8, 44(1) 200; ASM32-NEXT: stw 9, 48(1) 201; ASM32-NEXT: stw 10, 52(1) 202; ASM32-NEXT: stw 3, -4(1) 203; ASM32-NEXT: stw 3, -8(1) 204; ASM32-NEXT: blr 205entry: 206 %arg1 = alloca ptr, align 4 207 %arg2 = alloca ptr, align 4 208 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg1) 209 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg2) 210 call void @llvm.va_start(ptr nonnull %arg1) 211 call void @llvm.va_copy(ptr nonnull %arg2, ptr nonnull %arg1) 212 %argp.cur = load ptr, ptr %arg1, align 4 213 %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 8 214 store ptr %argp.next, ptr %arg1, align 4 215 %0 = load double, ptr %argp.cur, align 4 216 %add = fadd double %0, %a 217 %argp.cur2 = load ptr, ptr %arg2, align 4 218 %argp.next3 = getelementptr inbounds i8, ptr %argp.cur2, i32 8 219 store ptr %argp.next3, ptr %arg2, align 4 220 %1 = load double, ptr %argp.cur2, align 4 221 %mul = fmul double %1, 2.000000e+00 222 %add4 = fadd double %add, %mul 223 call void @llvm.va_end(ptr nonnull %arg1) 224 call void @llvm.va_end(ptr nonnull %arg2) 225 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg2) 226 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg1) 227 ret double %add4 228} 229 230; 32BIT-LABEL: name: double_va_arg 231; 32BIT-LABEL: liveins: 232; 32BIT-DAG: - { reg: '$f1', virtual-reg: '' } 233; 32BIT-DAG: - { reg: '$r5', virtual-reg: '' } 234; 32BIT-DAG: - { reg: '$r6', virtual-reg: '' } 235; 32BIT-DAG: - { reg: '$r7', virtual-reg: '' } 236; 32BIT-DAG: - { reg: '$r8', virtual-reg: '' } 237; 32BIT-DAG: - { reg: '$r9', virtual-reg: '' } 238; 32BIT-DAG: - { reg: '$r10', virtual-reg: '' } 239 240; 32BIT-LABEL: fixedStack: 241; 32BIT-DAG: - { id: 0, type: default, offset: 32, size: 4 242 243; 32BIT-LABEL: stack: 244; 32BIT-DAG: - { id: 0, name: arg1, type: default, offset: 0, size: 4 245; 32BIT-DAG: - { id: 1, name: arg2, type: default, offset: 0, size: 4 246 247; 32BIT-LABEL: body: | 248; 32BIT-DAG: liveins: $f1, $r5, $r6, $r7, $r8, $r9, $r10 249; 32BIT-DAG: renamable $r3 = ADDI %fixed-stack.0, 0 250; 32BIT-DAG: STW killed renamable $r7, 8, %fixed-stack.0 :: (store (s32), align 8) 251; 32BIT-DAG: STW renamable $r5, 0, %fixed-stack.0 :: (store (s32) into %fixed-stack.0, align 16) 252; 32BIT-DAG: STW renamable $r6, 4, %fixed-stack.0 :: (store (s32) into %fixed-stack.0 + 4) 253; 32BIT-DAG: STW killed renamable $r8, 12, %fixed-stack.0 :: (store (s32)) 254; 32BIT-DAG: STW killed renamable $r9, 16, %fixed-stack.0 :: (store (s32) into %fixed-stack.0 + 16, align 16) 255; 32BIT-DAG: STW killed renamable $r10, 20, %fixed-stack.0 :: (store (s32)) 256; 32BIT-DAG: STW renamable $r3, 0, %stack.0.arg1 :: (store (s32) into %ir.arg1) 257; 32BIT-DAG: STW killed renamable $r3, 0, %stack.1.arg2 :: (store (s32) into %ir.arg2) 258; 32BIT-DAG: STW renamable $r5, 0, %stack.2 :: (store (s32) into %stack.2, align 8) 259; 32BIT-DAG: STW renamable $r6, 4, %stack.2 :: (store (s32) into %stack.2 + 4) 260; 32BIT-DAG: renamable $f0 = LFD 0, %stack.2 :: (load (s64) from %stack.2) 261; 32BIT-DAG: STW killed renamable $r5, 0, %stack.3 :: (store (s32) into %stack.3, align 8) 262; 32BIT-DAG: STW killed renamable $r6, 4, %stack.3 :: (store (s32) into %stack.3 + 4) 263; 32BIT-DAG: renamable $f2 = LFD 0, %stack.3 :: (load (s64) from %stack.3) 264; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm 265; 32BIT-DAG: renamable $f1 = nofpexcept FADD killed renamable $f2, renamable $f2, implicit $rm 266; 32BIT-DAG: renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm 267; 32BIT-DAG: BLR implicit $lr, implicit $rm, implicit $f1 268 269define double @double_stack_va_arg(double %one, double %two, double %three, double %four, double %five, double %six, double %seven, double %eight, double %nine, double %ten, double %eleven, double %twelve, double %thirteen, ...) local_unnamed_addr { 270; ASM32-LABEL: double_stack_va_arg: 271; ASM32: # %bb.0: # %entry 272; ASM32-NEXT: fadd 0, 1, 2 273; ASM32-NEXT: addi 3, 1, 128 274; ASM32-NEXT: lwz 4, 132(1) 275; ASM32-NEXT: fadd 0, 0, 3 276; ASM32-NEXT: stw 3, -4(1) 277; ASM32-NEXT: fadd 0, 0, 4 278; ASM32-NEXT: lwz 3, 128(1) 279; ASM32-NEXT: fadd 0, 0, 5 280; ASM32-NEXT: stw 3, -16(1) 281; ASM32-NEXT: fadd 0, 0, 6 282; ASM32-NEXT: stw 4, -12(1) 283; ASM32-NEXT: fadd 0, 0, 7 284; ASM32-NEXT: lfd 1, -16(1) 285; ASM32-NEXT: fadd 0, 0, 8 286; ASM32-NEXT: stw 3, -24(1) 287; ASM32-NEXT: fadd 0, 0, 9 288; ASM32-NEXT: stw 4, -20(1) 289; ASM32-NEXT: fadd 0, 0, 10 290; ASM32-NEXT: fadd 0, 0, 11 291; ASM32-NEXT: fadd 0, 0, 12 292; ASM32-NEXT: fadd 0, 0, 13 293; ASM32-NEXT: fadd 0, 0, 1 294; ASM32-NEXT: lfd 1, -24(1) 295; ASM32-NEXT: fadd 1, 1, 1 296; ASM32-NEXT: fadd 1, 0, 1 297; ASM32-NEXT: blr 298entry: 299 %arg1 = alloca ptr, align 4 300 %arg2 = alloca ptr, align 4 301 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg1) 302 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %arg2) 303 call void @llvm.va_start(ptr nonnull %arg1) 304 call void @llvm.va_copy(ptr nonnull %arg2, ptr nonnull %arg1) 305 %add = fadd double %one, %two 306 %add2 = fadd double %add, %three 307 %add3 = fadd double %add2, %four 308 %add4 = fadd double %add3, %five 309 %add5 = fadd double %add4, %six 310 %add6 = fadd double %add5, %seven 311 %add7 = fadd double %add6, %eight 312 %add8 = fadd double %add7, %nine 313 %add9 = fadd double %add8, %ten 314 %add10 = fadd double %add9, %eleven 315 %add11 = fadd double %add10, %twelve 316 %add12 = fadd double %add11, %thirteen 317 %argp.cur1 = load ptr, ptr %arg1, align 4 318 %0 = load double, ptr %argp.cur1, align 4 319 %add13 = fadd double %add12, %0 320 %argp.cur142 = load ptr, ptr %arg2, align 4 321 %1 = load double, ptr %argp.cur142, align 4 322 %mul = fmul double %1, 2.000000e+00 323 %add16 = fadd double %add13, %mul 324 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg2) 325 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %arg1) 326 ret double %add16 327} 328 329; 32BIT-LABEL: name: double_stack_va_arg 330; 32BIT-LABEL: liveins: 331; 32BIT-DAG: - { reg: '$f1', virtual-reg: '' } 332; 32BIT-DAG: - { reg: '$f2', virtual-reg: '' } 333; 32BIT-DAG: - { reg: '$f3', virtual-reg: '' } 334; 32BIT-DAG: - { reg: '$f4', virtual-reg: '' } 335; 32BIT-DAG: - { reg: '$f5', virtual-reg: '' } 336; 32BIT-DAG: - { reg: '$f6', virtual-reg: '' } 337; 32BIT-DAG: - { reg: '$f7', virtual-reg: '' } 338; 32BIT-DAG: - { reg: '$f8', virtual-reg: '' } 339; 32BIT-DAG: - { reg: '$f9', virtual-reg: '' } 340; 32BIT-DAG: - { reg: '$f10', virtual-reg: '' } 341; 32BIT-DAG: - { reg: '$f11', virtual-reg: '' } 342; 32BIT-DAG: - { reg: '$f12', virtual-reg: '' } 343; 32BIT-DAG: - { reg: '$f13', virtual-reg: '' } 344 345; 32BIT-LABEL: fixedStack: 346; 32BIT-DAG: - { id: 0, type: default, offset: 128, size: 4 347 348; 32BIT-LABEL: stack: 349; 32BIT-DAG: - { id: 0, name: arg1, type: default, offset: 0, size: 4, alignment: 4, 350; 32BIT-DAG: - { id: 1, name: arg2, type: default, offset: 0, size: 4, alignment: 4, 351; 32BIT-DAG: - { id: 2, name: '', type: default, offset: 0, size: 8, alignment: 8, 352; 32BIT-DAG: - { id: 3, name: '', type: default, offset: 0, size: 8, alignment: 8, 353 354; 32BIT-LABEL: body: | 355; 32BIT-DAG: liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f13 356; 32BIT-DAG: renamable $r3 = ADDI %fixed-stack.0, 0 357; 32BIT-DAG: STW killed renamable $r3, 0, %stack.0.arg1 :: (store (s32) into %ir.arg1) 358; 32BIT-DAG: renamable $r3 = LWZ 0, %fixed-stack.0 :: (load (s32) from %ir.argp.cur142, align 16) 359; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm 360; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm 361; 32BIT-DAG: STW renamable $r3, 0, %stack.2 :: (store (s32) into %stack.2, align 8) 362; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f4, implicit $rm 363; 32BIT-DAG: renamable $r4 = LWZ 4, %fixed-stack.0 :: (load (s32) from %ir.argp.cur142 + 4) 364; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f5, implicit $rm 365; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f6, implicit $rm 366; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f7, implicit $rm 367; 32BIT-DAG: STW renamable $r4, 4, %stack.2 :: (store (s32) into %stack.2 + 4) 368; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f8, implicit $rm 369; 32BIT-DAG: renamable $f1 = LFD 0, %stack.2 :: (load (s64) from %stack.2) 370; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f9, implicit $rm 371; 32BIT-DAG: STW killed renamable $r3, 0, %stack.3 :: (store (s32) into %stack.3, align 8) 372; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f10, implicit $rm 373; 32BIT-DAG: STW killed renamable $r4, 4, %stack.3 :: (store (s32) into %stack.3 + 4) 374; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f11, implicit $rm 375; 32BIT-DAG: renamable $f2 = LFD 0, %stack.3 :: (load (s64) from %stack.3) 376; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f12, implicit $rm 377; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f13, implicit $rm 378; 32BIT-DAG: renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm 379; 32BIT-DAG: renamable $f1 = nofpexcept FADD killed renamable $f2, renamable $f2, implicit $rm 380; 32BIT-DAG: renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm 381; 32BIT-DAG: BLR implicit $lr, implicit $rm, implicit $f1 382