43 lines · plain
1; RUN: llc -mtriple=mips64 -relocation-model=static -target-abi n32 -mattr=single-float < %s \2; RUN: | FileCheck --check-prefixes=ALL,SYM32 %s3; RUN: llc -mtriple=mips64el -relocation-model=static -target-abi n32 -mattr=single-float < %s \4; RUN: | FileCheck --check-prefixes=ALL,SYM32 %s5 6; RUN: llc -mtriple=mips64 -relocation-model=static -target-abi n64 -mattr=single-float < %s \7; RUN: | FileCheck --check-prefixes=ALL,SYM64 %s8; RUN: llc -mtriple=mips64el -relocation-model=static -target-abi n64 -mattr=single-float < %s \9; RUN: | FileCheck --check-prefixes=ALL,SYM64 %s10 11@ldoubles = global [11 x fp128] zeroinitializer12 13define void @ldouble_args(fp128 %a, fp128 %b, fp128 %c, fp128 %d, fp128 %e) nounwind {14entry:15 %0 = getelementptr [11 x fp128], ptr @ldoubles, i32 0, i32 116 store volatile fp128 %a, ptr %017 %1 = getelementptr [11 x fp128], ptr @ldoubles, i32 0, i32 218 store volatile fp128 %b, ptr %119 %2 = getelementptr [11 x fp128], ptr @ldoubles, i32 0, i32 320 store volatile fp128 %c, ptr %221 %3 = getelementptr [11 x fp128], ptr @ldoubles, i32 0, i32 422 store volatile fp128 %d, ptr %323 %4 = getelementptr [11 x fp128], ptr @ldoubles, i32 0, i32 524 store volatile fp128 %e, ptr %425 ret void26}27 28; ALL-LABEL: ldouble_args:29; We won't test the way the global address is calculated in this test. This is30; just to get the register number for the other checks.31; SYM32-DAG: addiu [[R2:\$[0-9]+]], ${{[0-9]+}}, %lo(ldoubles)32; SYM64-DAG: daddiu [[R2:\$[0-9]+]], ${{[0-9]+}}, %lo(ldoubles)33 34; The first four arguments are the same in N32/N64.35; ALL-DAG: sd $5, 24([[R2]])36; ALL-DAG: sd $4, 16([[R2]])37; ALL-DAG: sd $7, 40([[R2]])38; ALL-DAG: sd $6, 32([[R2]])39; ALL-DAG: sd $9, 56([[R2]])40; ALL-DAG: sd $8, 48([[R2]])41; ALL-DAG: sd $11, 72([[R2]])42; ALL-DAG: sd $10, 64([[R2]])43