Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 ; This tries to be a comprehensive test of i64 operations, in | 1 ; This tries to be a comprehensive test of i64 operations, in |
| 2 ; particular the patterns for lowering i64 operations into constituent | 2 ; particular the patterns for lowering i64 operations into constituent |
| 3 ; i32 operations on x86-32. | 3 ; i32 operations on x86-32. |
| 4 | 4 |
| 5 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 5 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 6 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ | 6 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ |
| 7 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 7 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 8 | 8 |
| 9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 10 ; RUN: --target x8632 -i %s --args -Om1 -allow-externally-defined-symbols \ | 10 ; RUN: --target x8632 -i %s --args -Om1 -allow-externally-defined-symbols \ |
| (...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1009 | 1009 |
| 1010 if.then2: ; preds = %if.end | 1010 if.then2: ; preds = %if.end |
| 1011 call void @func() | 1011 call void @func() |
| 1012 br label %if.end3 | 1012 br label %if.end3 |
| 1013 | 1013 |
| 1014 if.end3: ; preds = %if.then2, %if.end | 1014 if.end3: ; preds = %if.then2, %if.end |
| 1015 ret void | 1015 ret void |
| 1016 } | 1016 } |
| 1017 ; CHECK-LABEL: icmpEq64 | 1017 ; CHECK-LABEL: icmpEq64 |
| 1018 ; CHECK: jne | 1018 ; CHECK: jne |
| 1019 ; CHECK: je | |
|
Jim Stichnoth
2015/10/16 13:58:11
Here and below, I think it would be better to repl
sehr
2015/10/16 18:10:22
I've tightened the patterns for both O2 and Om1.
| |
| 1020 ; CHECK: call | 1019 ; CHECK: call |
| 1021 ; CHECK: jne | 1020 ; CHECK: jne |
| 1022 ; CHECK: je | |
| 1023 ; CHECK: call | 1021 ; CHECK: call |
| 1024 ; | 1022 ; |
| 1025 ; OPTM1-LABEL: icmpEq64 | 1023 ; OPTM1-LABEL: icmpEq64 |
| 1026 ; OPTM1: jne | 1024 ; OPTM1: jne |
| 1027 ; OPTM1: je | 1025 ; OPTM1: je |
| 1028 ; OPTM1: call | 1026 ; OPTM1: call |
| 1029 ; OPTM1: jne | 1027 ; OPTM1: jne |
| 1030 ; OPTM1: je | 1028 ; OPTM1: je |
| 1031 ; OPTM1: call | 1029 ; OPTM1: call |
| 1032 | 1030 |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 1059 | 1057 |
| 1060 if.then2: ; preds = %if.end | 1058 if.then2: ; preds = %if.end |
| 1061 call void @func() | 1059 call void @func() |
| 1062 br label %if.end3 | 1060 br label %if.end3 |
| 1063 | 1061 |
| 1064 if.end3: ; preds = %if.end, %if.then2 | 1062 if.end3: ; preds = %if.end, %if.then2 |
| 1065 ret void | 1063 ret void |
| 1066 } | 1064 } |
| 1067 ; CHECK-LABEL: icmpNe64 | 1065 ; CHECK-LABEL: icmpNe64 |
| 1068 ; CHECK: jne | 1066 ; CHECK: jne |
| 1069 ; CHECK: jne | |
| 1070 ; CHECK: call | 1067 ; CHECK: call |
| 1071 ; CHECK: jne | 1068 ; CHECK: jne |
| 1072 ; CHECK: jne | |
| 1073 ; CHECK: call | 1069 ; CHECK: call |
| 1074 ; | 1070 ; |
| 1075 ; OPTM1-LABEL: icmpNe64 | 1071 ; OPTM1-LABEL: icmpNe64 |
| 1076 ; OPTM1: jne | 1072 ; OPTM1: jne |
| 1077 ; OPTM1: jne | 1073 ; OPTM1: jne |
| 1078 ; OPTM1: call | 1074 ; OPTM1: call |
| 1079 ; OPTM1: jne | 1075 ; OPTM1: jne |
| 1080 ; OPTM1: jne | 1076 ; OPTM1: jne |
| 1081 ; OPTM1: call | 1077 ; OPTM1: call |
| 1082 | 1078 |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 1108 if.then2: ; preds = %if.end | 1104 if.then2: ; preds = %if.end |
| 1109 call void @func() | 1105 call void @func() |
| 1110 br label %if.end3 | 1106 br label %if.end3 |
| 1111 | 1107 |
| 1112 if.end3: ; preds = %if.then2, %if.end | 1108 if.end3: ; preds = %if.then2, %if.end |
| 1113 ret void | 1109 ret void |
| 1114 } | 1110 } |
| 1115 ; CHECK-LABEL: icmpGt64 | 1111 ; CHECK-LABEL: icmpGt64 |
| 1116 ; CHECK: ja | 1112 ; CHECK: ja |
| 1117 ; CHECK: jb | 1113 ; CHECK: jb |
| 1118 ; CHECK: ja | 1114 ; CHECK: jbe |
| 1119 ; CHECK: call | 1115 ; CHECK: call |
| 1120 ; CHECK: jg | 1116 ; CHECK: jg |
| 1121 ; CHECK: jl | 1117 ; CHECK: jl |
| 1122 ; CHECK: ja | 1118 ; CHECK: jbe |
| 1123 ; CHECK: call | 1119 ; CHECK: call |
| 1124 ; | 1120 ; |
| 1125 ; OPTM1-LABEL: icmpGt64 | 1121 ; OPTM1-LABEL: icmpGt64 |
| 1126 ; OPTM1: ja | 1122 ; OPTM1: ja |
| 1127 ; OPTM1: jb | 1123 ; OPTM1: jb |
| 1128 ; OPTM1: ja | 1124 ; OPTM1: ja |
| 1129 ; OPTM1: call | 1125 ; OPTM1: call |
| 1130 ; OPTM1: jg | 1126 ; OPTM1: jg |
| 1131 ; OPTM1: jl | 1127 ; OPTM1: jl |
| 1132 ; OPTM1: ja | 1128 ; OPTM1: ja |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1160 if.then2: ; preds = %if.end | 1156 if.then2: ; preds = %if.end |
| 1161 call void @func() | 1157 call void @func() |
| 1162 br label %if.end3 | 1158 br label %if.end3 |
| 1163 | 1159 |
| 1164 if.end3: ; preds = %if.end, %if.then2 | 1160 if.end3: ; preds = %if.end, %if.then2 |
| 1165 ret void | 1161 ret void |
| 1166 } | 1162 } |
| 1167 ; CHECK-LABEL: icmpGe64 | 1163 ; CHECK-LABEL: icmpGe64 |
| 1168 ; CHECK: ja | 1164 ; CHECK: ja |
| 1169 ; CHECK: jb | 1165 ; CHECK: jb |
| 1170 ; CHECK: jae | 1166 ; CHECK: jb |
| 1171 ; CHECK: call | 1167 ; CHECK: call |
| 1172 ; CHECK: jg | 1168 ; CHECK: jg |
| 1173 ; CHECK: jl | 1169 ; CHECK: jl |
| 1174 ; CHECK: jae | 1170 ; CHECK: jb |
| 1175 ; CHECK: call | 1171 ; CHECK: call |
| 1176 ; | 1172 ; |
| 1177 ; OPTM1-LABEL: icmpGe64 | 1173 ; OPTM1-LABEL: icmpGe64 |
| 1178 ; OPTM1: ja | 1174 ; OPTM1: ja |
| 1179 ; OPTM1: jb | 1175 ; OPTM1: jb |
| 1180 ; OPTM1: jae | 1176 ; OPTM1: jae |
| 1181 ; OPTM1: call | 1177 ; OPTM1: call |
| 1182 ; OPTM1: jg | 1178 ; OPTM1: jg |
| 1183 ; OPTM1: jl | 1179 ; OPTM1: jl |
| 1184 ; OPTM1: jae | 1180 ; OPTM1: jae |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1212 if.then2: ; preds = %if.end | 1208 if.then2: ; preds = %if.end |
| 1213 call void @func() | 1209 call void @func() |
| 1214 br label %if.end3 | 1210 br label %if.end3 |
| 1215 | 1211 |
| 1216 if.end3: ; preds = %if.then2, %if.end | 1212 if.end3: ; preds = %if.then2, %if.end |
| 1217 ret void | 1213 ret void |
| 1218 } | 1214 } |
| 1219 ; CHECK-LABEL: icmpLt64 | 1215 ; CHECK-LABEL: icmpLt64 |
| 1220 ; CHECK: jb | 1216 ; CHECK: jb |
| 1221 ; CHECK: ja | 1217 ; CHECK: ja |
| 1222 ; CHECK: jb | 1218 ; CHECK: jae |
| 1223 ; CHECK: call | 1219 ; CHECK: call |
| 1224 ; CHECK: jl | 1220 ; CHECK: jl |
| 1225 ; CHECK: jg | 1221 ; CHECK: jg |
| 1226 ; CHECK: jb | 1222 ; CHECK: jae |
| 1227 ; CHECK: call | 1223 ; CHECK: call |
| 1228 ; | 1224 ; |
| 1229 ; OPTM1-LABEL: icmpLt64 | 1225 ; OPTM1-LABEL: icmpLt64 |
| 1230 ; OPTM1: jb | 1226 ; OPTM1: jb |
| 1231 ; OPTM1: ja | 1227 ; OPTM1: ja |
| 1232 ; OPTM1: jb | 1228 ; OPTM1: jb |
| 1233 ; OPTM1: call | 1229 ; OPTM1: call |
| 1234 ; OPTM1: jl | 1230 ; OPTM1: jl |
| 1235 ; OPTM1: jg | 1231 ; OPTM1: jg |
| 1236 ; OPTM1: jb | 1232 ; OPTM1: jb |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1264 if.then2: ; preds = %if.end | 1260 if.then2: ; preds = %if.end |
| 1265 call void @func() | 1261 call void @func() |
| 1266 br label %if.end3 | 1262 br label %if.end3 |
| 1267 | 1263 |
| 1268 if.end3: ; preds = %if.end, %if.then2 | 1264 if.end3: ; preds = %if.end, %if.then2 |
| 1269 ret void | 1265 ret void |
| 1270 } | 1266 } |
| 1271 ; CHECK-LABEL: icmpLe64 | 1267 ; CHECK-LABEL: icmpLe64 |
| 1272 ; CHECK: jb | 1268 ; CHECK: jb |
| 1273 ; CHECK: ja | 1269 ; CHECK: ja |
| 1274 ; CHECK: jbe | 1270 ; CHECK: ja |
| 1275 ; CHECK: call | 1271 ; CHECK: call |
| 1276 ; CHECK: jl | 1272 ; CHECK: jl |
| 1277 ; CHECK: jg | 1273 ; CHECK: jg |
| 1278 ; CHECK: jbe | 1274 ; CHECK: ja |
| 1279 ; CHECK: call | 1275 ; CHECK: call |
| 1280 ; | 1276 ; |
| 1281 ; OPTM1-LABEL: icmpLe64 | 1277 ; OPTM1-LABEL: icmpLe64 |
| 1282 ; OPTM1: jb | 1278 ; OPTM1: jb |
| 1283 ; OPTM1: ja | 1279 ; OPTM1: ja |
| 1284 ; OPTM1: jbe | 1280 ; OPTM1: jbe |
| 1285 ; OPTM1: call | 1281 ; OPTM1: call |
| 1286 ; OPTM1: jl | 1282 ; OPTM1: jl |
| 1287 ; OPTM1: jg | 1283 ; OPTM1: jg |
| 1288 ; OPTM1: jbe | 1284 ; OPTM1: jbe |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1810 ; CHECK-LABEL: phi64Undef | 1806 ; CHECK-LABEL: phi64Undef |
| 1811 ; CHECK: mov {{.*}},0x0 | 1807 ; CHECK: mov {{.*}},0x0 |
| 1812 ; CHECK: mov {{.*}},0x0 | 1808 ; CHECK: mov {{.*}},0x0 |
| 1813 ; OPTM1-LABEL: phi64Undef | 1809 ; OPTM1-LABEL: phi64Undef |
| 1814 ; OPTM1: mov {{.*}},0x0 | 1810 ; OPTM1: mov {{.*}},0x0 |
| 1815 ; OPTM1: mov {{.*}},0x0 | 1811 ; OPTM1: mov {{.*}},0x0 |
| 1816 ; ARM32-LABEL: phi64Undef | 1812 ; ARM32-LABEL: phi64Undef |
| 1817 ; ARM32: mov {{.*}} #0 | 1813 ; ARM32: mov {{.*}} #0 |
| 1818 ; ARM32: mov {{.*}} #0 | 1814 ; ARM32: mov {{.*}} #0 |
| 1819 | 1815 |
| OLD | NEW |