@@ -943,45 +943,33 @@ define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) #0 {
943943define void @test_sincos_f128 (ptr sret ({ fp128 , fp128 }) %ret , ptr %in ) #0 {
944944; SPARC32-LABEL: test_sincos_f128:
945945; SPARC32: ! %bb.0:
946- ; SPARC32-NEXT: save %sp, -200 , %sp
946+ ; SPARC32-NEXT: save %sp, -176 , %sp
947947; SPARC32-NEXT: ld [%fp+64], %i1
948948; SPARC32-NEXT: ldd [%i0], %f0
949- ; SPARC32-NEXT: std %f0, [%fp+-96 ]
950- ; SPARC32-NEXT: std %f2, [%fp+-88 ] ! 16-byte Folded Spill
949+ ; SPARC32-NEXT: std %f0, [%fp+-72 ]
950+ ; SPARC32-NEXT: std %f2, [%fp+-64 ] ! 16-byte Folded Spill
951951; SPARC32-NEXT: ldd [%i0+8], %f4
952- ; SPARC32-NEXT: std %f4, [%fp+-80] ! 8-byte Folded Spill
953- ; SPARC32-NEXT: add %fp, -64, %i0
954- ; SPARC32-NEXT: st %i0, [%sp+92]
955- ; SPARC32-NEXT: add %fp, -48, %i0
956- ; SPARC32-NEXT: st %i0, [%sp+64]
957- ; SPARC32-NEXT: std %f4, [%fp+-56]
958- ; SPARC32-NEXT: call sinl
959- ; SPARC32-NEXT: std %f0, [%fp+-64]
960- ; SPARC32-NEXT: unimp 16
952+ ; SPARC32-NEXT: std %f4, [%fp+-56] ! 8-byte Folded Spill
961953; SPARC32-NEXT: add %fp, -32, %i0
962954; SPARC32-NEXT: st %i0, [%sp+92]
963- ; SPARC32-NEXT: add %fp, -16, %i0
964- ; SPARC32-NEXT: st %i0, [%sp+64]
965- ; SPARC32-NEXT: ldd [%fp+-80], %f0 ! 8-byte Folded Reload
966- ; SPARC32-NEXT: std %f0, [%fp+-24]
967- ; SPARC32-NEXT: ldd [%fp+-96], %f0
968- ; SPARC32-NEXT: ldd [%fp+-88], %f2 ! 16-byte Folded Reload
955+ ; SPARC32-NEXT: std %f4, [%fp+-24]
956+ ; SPARC32-NEXT: call sinl
969957; SPARC32-NEXT: std %f0, [%fp+-32]
970- ; SPARC32-NEXT: ldd [%fp+-48], %f0
971- ; SPARC32-NEXT: std %f0, [%fp+-80]
972- ; SPARC32-NEXT: std %f2, [%fp+-72] ! 16-byte Folded Spill
973- ; SPARC32-NEXT: ldd [%fp+-40], %f0
958+ ; SPARC32-NEXT: std %f0, [%fp+-48]
959+ ; SPARC32-NEXT: std %f2, [%fp+-40] ! 16-byte Folded Spill
960+ ; SPARC32-NEXT: add %fp, -16, %i0
961+ ; SPARC32-NEXT: st %i0, [%sp+92]
962+ ; SPARC32-NEXT: ldd [%fp+-56], %f0 ! 8-byte Folded Reload
963+ ; SPARC32-NEXT: std %f0, [%fp+-8]
964+ ; SPARC32-NEXT: ldd [%fp+-72], %f0
965+ ; SPARC32-NEXT: ldd [%fp+-64], %f2 ! 16-byte Folded Reload
974966; SPARC32-NEXT: call cosl
975- ; SPARC32-NEXT: std %f0, [%fp+-96]
976- ; SPARC32-NEXT: unimp 16
977- ; SPARC32-NEXT: ldd [%fp+-8], %f0
978- ; SPARC32-NEXT: ldd [%fp+-16], %f4
979- ; SPARC32-NEXT: std %f0, [%i1+24]
980- ; SPARC32-NEXT: std %f4, [%i1+16]
981- ; SPARC32-NEXT: ldd [%fp+-96], %f0 ! 8-byte Folded Reload
982- ; SPARC32-NEXT: std %f0, [%i1+8]
983- ; SPARC32-NEXT: ldd [%fp+-80], %f0
984- ; SPARC32-NEXT: ldd [%fp+-72], %f2 ! 16-byte Folded Reload
967+ ; SPARC32-NEXT: std %f0, [%fp+-16]
968+ ; SPARC32-NEXT: std %f2, [%i1+24]
969+ ; SPARC32-NEXT: std %f0, [%i1+16]
970+ ; SPARC32-NEXT: ldd [%fp+-48], %f0
971+ ; SPARC32-NEXT: ldd [%fp+-40], %f2 ! 16-byte Folded Reload
972+ ; SPARC32-NEXT: std %f2, [%i1+8]
985973; SPARC32-NEXT: std %f0, [%i1]
986974; SPARC32-NEXT: jmp %i7+12
987975; SPARC32-NEXT: restore %g0, %i1, %o0
@@ -1063,93 +1051,67 @@ define void @test_sincos_f128(ptr sret({ fp128, fp128 }) %ret, ptr %in) #0 {
10631051define void @test_sincos_v2f128 (ptr sret ({ <2 x fp128 >, <2 x fp128 > }) %ret , ptr %in ) #0 {
10641052; SPARC32-LABEL: test_sincos_v2f128:
10651053; SPARC32: ! %bb.0:
1066- ; SPARC32-NEXT: save %sp, -312 , %sp
1054+ ; SPARC32-NEXT: save %sp, -256 , %sp
10671055; SPARC32-NEXT: mov %i0, %i1
10681056; SPARC32-NEXT: ld [%fp+64], %i0
1069- ; SPARC32-NEXT: ldd [%i1], %f0
1070- ; SPARC32-NEXT: std %f0, [%fp+-144]
1071- ; SPARC32-NEXT: std %f2, [%fp+-136] ! 16-byte Folded Spill
1072- ; SPARC32-NEXT: ldd [%i1+8], %f0
1073- ; SPARC32-NEXT: std %f0, [%fp+-152] ! 8-byte Folded Spill
10741057; SPARC32-NEXT: ldd [%i1+16], %f0
1075- ; SPARC32-NEXT: std %f0, [%fp+-184]
1076- ; SPARC32-NEXT: std %f2, [%fp+-176] ! 16-byte Folded Spill
1077- ; SPARC32-NEXT: ldd [%i1+24], %f4
1078- ; SPARC32-NEXT: std %f4, [%fp+-168] ! 8-byte Folded Spill
1079- ; SPARC32-NEXT: add %fp, -128, %i1
1080- ; SPARC32-NEXT: st %i1, [%sp+92]
1081- ; SPARC32-NEXT: add %fp, -112, %i1
1082- ; SPARC32-NEXT: st %i1, [%sp+64]
1083- ; SPARC32-NEXT: std %f4, [%fp+-120]
1084- ; SPARC32-NEXT: call sinl
1085- ; SPARC32-NEXT: std %f0, [%fp+-128]
1086- ; SPARC32-NEXT: unimp 16
1058+ ; SPARC32-NEXT: std %f0, [%fp+-80]
1059+ ; SPARC32-NEXT: std %f2, [%fp+-72] ! 16-byte Folded Spill
1060+ ; SPARC32-NEXT: ldd [%i1+24], %f0
1061+ ; SPARC32-NEXT: std %f0, [%fp+-88] ! 8-byte Folded Spill
1062+ ; SPARC32-NEXT: ldd [%i1], %f0
1063+ ; SPARC32-NEXT: std %f0, [%fp+-152]
1064+ ; SPARC32-NEXT: std %f2, [%fp+-144] ! 16-byte Folded Spill
1065+ ; SPARC32-NEXT: ldd [%i1+8], %f4
1066+ ; SPARC32-NEXT: std %f4, [%fp+-136] ! 8-byte Folded Spill
10871067; SPARC32-NEXT: add %fp, -32, %i1
10881068; SPARC32-NEXT: st %i1, [%sp+92]
1089- ; SPARC32-NEXT: add %fp, -16, %i1
1090- ; SPARC32-NEXT: st %i1, [%sp+64]
1091- ; SPARC32-NEXT: ldd [%fp+-152], %f0 ! 8-byte Folded Reload
1092- ; SPARC32-NEXT: std %f0, [%fp+-24]
1093- ; SPARC32-NEXT: ldd [%fp+-144], %f0
1094- ; SPARC32-NEXT: ldd [%fp+-136], %f2 ! 16-byte Folded Reload
1095- ; SPARC32-NEXT: call cosl
1069+ ; SPARC32-NEXT: std %f4, [%fp+-24]
1070+ ; SPARC32-NEXT: call sinl
10961071; SPARC32-NEXT: std %f0, [%fp+-32]
1097- ; SPARC32-NEXT: unimp 16
1072+ ; SPARC32-NEXT: std %f0, [%fp+-104]
1073+ ; SPARC32-NEXT: std %f2, [%fp+-96] ! 16-byte Folded Spill
10981074; SPARC32-NEXT: add %fp, -64, %i1
10991075; SPARC32-NEXT: st %i1, [%sp+92]
1100- ; SPARC32-NEXT: add %fp, -48, %i1
1101- ; SPARC32-NEXT: st %i1, [%sp+64]
1102- ; SPARC32-NEXT: ldd [%fp+-152], %f0 ! 8-byte Folded Reload
1076+ ; SPARC32-NEXT: ldd [%fp+-88], %f0 ! 8-byte Folded Reload
11031077; SPARC32-NEXT: std %f0, [%fp+-56]
1104- ; SPARC32-NEXT: ldd [%fp+-144 ], %f0
1105- ; SPARC32-NEXT: ldd [%fp+-136 ], %f2 ! 16-byte Folded Reload
1078+ ; SPARC32-NEXT: ldd [%fp+-80 ], %f0
1079+ ; SPARC32-NEXT: ldd [%fp+-72 ], %f2 ! 16-byte Folded Reload
11061080; SPARC32-NEXT: call sinl
11071081; SPARC32-NEXT: std %f0, [%fp+-64]
1108- ; SPARC32-NEXT: unimp 16
1109- ; SPARC32-NEXT: add %fp, -96, %i1
1082+ ; SPARC32-NEXT: std %f0, [%fp+-120]
1083+ ; SPARC32-NEXT: std %f2, [%fp+-112] ! 16-byte Folded Spill
1084+ ; SPARC32-NEXT: add %fp, -16, %i1
11101085; SPARC32-NEXT: st %i1, [%sp+92]
1111- ; SPARC32-NEXT: add %fp, -80, %i1
1112- ; SPARC32-NEXT: st %i1, [%sp+64]
1113- ; SPARC32-NEXT: ldd [%fp+-168], %f0 ! 8-byte Folded Reload
1114- ; SPARC32-NEXT: std %f0, [%fp+-88]
1115- ; SPARC32-NEXT: ldd [%fp+-184], %f0
1116- ; SPARC32-NEXT: ldd [%fp+-176], %f2 ! 16-byte Folded Reload
1117- ; SPARC32-NEXT: std %f0, [%fp+-96]
1118- ; SPARC32-NEXT: ldd [%fp+-48], %f0
1119- ; SPARC32-NEXT: std %f0, [%fp+-144]
1120- ; SPARC32-NEXT: std %f2, [%fp+-136] ! 16-byte Folded Spill
1121- ; SPARC32-NEXT: ldd [%fp+-40], %f0
1122- ; SPARC32-NEXT: std %f0, [%fp+-152] ! 8-byte Folded Spill
1123- ; SPARC32-NEXT: ldd [%fp+-112], %f0
1124- ; SPARC32-NEXT: std %f0, [%fp+-168]
1125- ; SPARC32-NEXT: std %f2, [%fp+-160] ! 16-byte Folded Spill
1126- ; SPARC32-NEXT: ldd [%fp+-104], %f0
1127- ; SPARC32-NEXT: std %f0, [%fp+-184] ! 8-byte Folded Spill
1128- ; SPARC32-NEXT: ldd [%fp+-16], %f0
1129- ; SPARC32-NEXT: std %f0, [%fp+-200]
1130- ; SPARC32-NEXT: std %f2, [%fp+-192] ! 16-byte Folded Spill
1131- ; SPARC32-NEXT: ldd [%fp+-8], %f0
1086+ ; SPARC32-NEXT: ldd [%fp+-136], %f0 ! 8-byte Folded Reload
1087+ ; SPARC32-NEXT: std %f0, [%fp+-8]
1088+ ; SPARC32-NEXT: ldd [%fp+-152], %f0
1089+ ; SPARC32-NEXT: ldd [%fp+-144], %f2 ! 16-byte Folded Reload
11321090; SPARC32-NEXT: call cosl
1133- ; SPARC32-NEXT: std %f0, [%fp+-208]
1134- ; SPARC32-NEXT: unimp 16
1135- ; SPARC32-NEXT: ldd [%fp+-72], %f0
1136- ; SPARC32-NEXT: ldd [%fp+-80], %f4
1137- ; SPARC32-NEXT: std %f0, [%i0+56]
1138- ; SPARC32-NEXT: std %f4, [%i0+48]
1139- ; SPARC32-NEXT: ldd [%fp+-208], %f0 ! 8-byte Folded Reload
1140- ; SPARC32-NEXT: std %f0, [%i0+40]
1141- ; SPARC32-NEXT: ldd [%fp+-200], %f0
1142- ; SPARC32-NEXT: ldd [%fp+-192], %f2 ! 16-byte Folded Reload
1091+ ; SPARC32-NEXT: std %f0, [%fp+-16]
1092+ ; SPARC32-NEXT: std %f0, [%fp+-136]
1093+ ; SPARC32-NEXT: std %f2, [%fp+-128] ! 16-byte Folded Spill
1094+ ; SPARC32-NEXT: add %fp, -48, %i1
1095+ ; SPARC32-NEXT: st %i1, [%sp+92]
1096+ ; SPARC32-NEXT: ldd [%fp+-88], %f0 ! 8-byte Folded Reload
1097+ ; SPARC32-NEXT: std %f0, [%fp+-40]
1098+ ; SPARC32-NEXT: ldd [%fp+-80], %f0
1099+ ; SPARC32-NEXT: ldd [%fp+-72], %f2 ! 16-byte Folded Reload
1100+ ; SPARC32-NEXT: call cosl
1101+ ; SPARC32-NEXT: std %f0, [%fp+-48]
1102+ ; SPARC32-NEXT: std %f2, [%i0+56]
1103+ ; SPARC32-NEXT: std %f0, [%i0+48]
1104+ ; SPARC32-NEXT: ldd [%fp+-136], %f0
1105+ ; SPARC32-NEXT: ldd [%fp+-128], %f2 ! 16-byte Folded Reload
1106+ ; SPARC32-NEXT: std %f2, [%i0+40]
11431107; SPARC32-NEXT: std %f0, [%i0+32]
1144- ; SPARC32-NEXT: ldd [%fp+-184], %f0 ! 8-byte Folded Reload
1145- ; SPARC32-NEXT: std %f0, [%i0+24]
1146- ; SPARC32-NEXT: ldd [%fp+-168], %f0
1147- ; SPARC32-NEXT: ldd [%fp+-160], %f2 ! 16-byte Folded Reload
1108+ ; SPARC32-NEXT: ldd [%fp+-120], %f0
1109+ ; SPARC32-NEXT: ldd [%fp+-112], %f2 ! 16-byte Folded Reload
1110+ ; SPARC32-NEXT: std %f2, [%i0+24]
11481111; SPARC32-NEXT: std %f0, [%i0+16]
1149- ; SPARC32-NEXT: ldd [%fp+-152], %f0 ! 8-byte Folded Reload
1150- ; SPARC32-NEXT: std %f0, [%i0+8]
1151- ; SPARC32-NEXT: ldd [%fp+-144], %f0
1152- ; SPARC32-NEXT: ldd [%fp+-136], %f2 ! 16-byte Folded Reload
1112+ ; SPARC32-NEXT: ldd [%fp+-104], %f0
1113+ ; SPARC32-NEXT: ldd [%fp+-96], %f2 ! 16-byte Folded Reload
1114+ ; SPARC32-NEXT: std %f2, [%i0+8]
11531115; SPARC32-NEXT: std %f0, [%i0]
11541116; SPARC32-NEXT: jmp %i7+12
11551117; SPARC32-NEXT: restore
0 commit comments