@@ -324,56 +324,6 @@ for.end: ; preds = %for.body, %entry
324
324
325
325
declare double @llvm.exp2.f64 (double )
326
326
327
- define void @ldexp_f32i32 (i32 %n , ptr %y , ptr %x , i32 %exp ) {
328
- ; CHECK-LABEL: @ldexp_f32i32(
329
- ; CHECK: llvm.ldexp.v4f32.v4i32
330
- ; CHECK: ret void
331
- ;
332
- entry:
333
- br label %for.body
334
-
335
- for.body: ; preds = %entry, %for.body
336
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
337
- %arrayidx = getelementptr inbounds float , ptr %y , i32 %iv
338
- %0 = load float , ptr %arrayidx , align 4
339
- %call = tail call float @llvm.ldexp.f32.i32 (float %0 , i32 %exp )
340
- %arrayidx2 = getelementptr inbounds float , ptr %x , i32 %iv
341
- store float %call , ptr %arrayidx2 , align 4
342
- %iv.next = add i32 %iv , 1
343
- %exitcond = icmp eq i32 %iv.next , %n
344
- br i1 %exitcond , label %for.end , label %for.body
345
-
346
- for.end: ; preds = %for.body, %entry
347
- ret void
348
- }
349
-
350
- declare float @llvm.ldexp.f32.i32 (float , i32 )
351
-
352
- define void @ldexp_f64i32 (i32 %n , ptr %y , ptr %x , i32 %exp ) {
353
- ; CHECK-LABEL: @ldexp_f64i32(
354
- ; CHECK: llvm.ldexp.v4f64.v4i32
355
- ; CHECK: ret void
356
- ;
357
- entry:
358
- br label %for.body
359
-
360
- for.body: ; preds = %entry, %for.body
361
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
362
- %arrayidx = getelementptr inbounds double , ptr %y , i32 %iv
363
- %0 = load double , ptr %arrayidx , align 8
364
- %call = tail call double @llvm.ldexp.f64.i32 (double %0 , i32 %exp )
365
- %arrayidx2 = getelementptr inbounds double , ptr %x , i32 %iv
366
- store double %call , ptr %arrayidx2 , align 8
367
- %iv.next = add i32 %iv , 1
368
- %exitcond = icmp eq i32 %iv.next , %n
369
- br i1 %exitcond , label %for.end , label %for.body
370
-
371
- for.end: ; preds = %for.body, %entry
372
- ret void
373
- }
374
-
375
- declare double @llvm.ldexp.f64.i32 (double , i32 )
376
-
377
327
define void @log_f32 (i32 %n , ptr %y , ptr %x ) {
378
328
; CHECK-LABEL: @log_f32(
379
329
; CHECK: llvm.log.v4f32
@@ -1026,157 +976,6 @@ for.end: ; preds = %for.body, %entry
1026
976
1027
977
declare double @llvm.roundeven.f64 (double )
1028
978
1029
-
1030
- define void @lround_i32f32 (i32 %n , ptr %y , ptr %x ) {
1031
- ; CHECK-LABEL: @lround_i32f32(
1032
- ; CHECK: llvm.lround.v4i32.v4f32
1033
- ; CHECK: ret void
1034
- ;
1035
- entry:
1036
- br label %for.body
1037
-
1038
- for.body: ; preds = %entry, %for.body
1039
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1040
- %arrayidx = getelementptr inbounds float , ptr %y , i32 %iv
1041
- %0 = load float , ptr %arrayidx , align 4
1042
- %call = tail call i32 @llvm.lround.i32.f32 (float %0 )
1043
- %arrayidx2 = getelementptr inbounds i32 , ptr %x , i32 %iv
1044
- store i32 %call , ptr %arrayidx2 , align 4
1045
- %iv.next = add i32 %iv , 1
1046
- %exitcond = icmp eq i32 %iv.next , %n
1047
- br i1 %exitcond , label %for.end , label %for.body
1048
-
1049
- for.end: ; preds = %for.body, %entry
1050
- ret void
1051
- }
1052
-
1053
- declare i32 @llvm.lround.i32.f32 (float )
1054
-
1055
- define void @lround_i32f64 (i32 %n , ptr %y , ptr %x ) {
1056
- ; CHECK-LABEL: @lround_i32f64(
1057
- ; CHECK: llvm.lround.v4i32.v4f64
1058
- ; CHECK: ret void
1059
- ;
1060
- entry:
1061
- br label %for.body
1062
-
1063
- for.body: ; preds = %entry, %for.body
1064
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1065
- %arrayidx = getelementptr inbounds double , ptr %y , i32 %iv
1066
- %0 = load double , ptr %arrayidx , align 8
1067
- %call = tail call i32 @llvm.lround.i32.f64 (double %0 )
1068
- %arrayidx2 = getelementptr inbounds i32 , ptr %x , i32 %iv
1069
- store i32 %call , ptr %arrayidx2 , align 8
1070
- %iv.next = add i32 %iv , 1
1071
- %exitcond = icmp eq i32 %iv.next , %n
1072
- br i1 %exitcond , label %for.end , label %for.body
1073
-
1074
- for.end: ; preds = %for.body, %entry
1075
- ret void
1076
- }
1077
-
1078
- declare i32 @llvm.lround.i32.f64 (double )
1079
-
1080
- define void @lround_i64f32 (i32 %n , ptr %y , ptr %x ) {
1081
- ; CHECK-LABEL: @lround_i64f32(
1082
- ; CHECK: llvm.lround.v4i64.v4f32
1083
- ; CHECK: ret void
1084
- ;
1085
- entry:
1086
- br label %for.body
1087
-
1088
- for.body: ; preds = %entry, %for.body
1089
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1090
- %arrayidx = getelementptr inbounds float , ptr %y , i32 %iv
1091
- %0 = load float , ptr %arrayidx , align 4
1092
- %call = tail call i64 @llvm.lround.i64.f32 (float %0 )
1093
- %arrayidx2 = getelementptr inbounds i64 , ptr %x , i32 %iv
1094
- store i64 %call , ptr %arrayidx2 , align 4
1095
- %iv.next = add i32 %iv , 1
1096
- %exitcond = icmp eq i32 %iv.next , %n
1097
- br i1 %exitcond , label %for.end , label %for.body
1098
-
1099
- for.end: ; preds = %for.body, %entry
1100
- ret void
1101
- }
1102
-
1103
- declare i64 @llvm.lround.i64.f32 (float )
1104
-
1105
- define void @lround_i64f64 (i32 %n , ptr %y , ptr %x ) {
1106
- ; CHECK-LABEL: @lround_i64f64(
1107
- ; CHECK: llvm.lround.v4i64.v4f64
1108
- ; CHECK: ret void
1109
- ;
1110
- entry:
1111
- br label %for.body
1112
-
1113
- for.body: ; preds = %entry, %for.body
1114
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1115
- %arrayidx = getelementptr inbounds double , ptr %y , i32 %iv
1116
- %0 = load double , ptr %arrayidx , align 8
1117
- %call = tail call i64 @llvm.lround.i64.f64 (double %0 )
1118
- %arrayidx2 = getelementptr inbounds i64 , ptr %x , i32 %iv
1119
- store i64 %call , ptr %arrayidx2 , align 8
1120
- %iv.next = add i32 %iv , 1
1121
- %exitcond = icmp eq i32 %iv.next , %n
1122
- br i1 %exitcond , label %for.end , label %for.body
1123
-
1124
- for.end: ; preds = %for.body, %entry
1125
- ret void
1126
- }
1127
-
1128
- declare i64 @llvm.lround.i64.f64 (double )
1129
-
1130
- define void @llround_i64f32 (i32 %n , ptr %y , ptr %x ) {
1131
- ; CHECK-LABEL: @llround_i64f32(
1132
- ; CHECK: llvm.llround.v4i64.v4f32
1133
- ; CHECK: ret void
1134
- ;
1135
- entry:
1136
- br label %for.body
1137
-
1138
- for.body: ; preds = %entry, %for.body
1139
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1140
- %arrayidx = getelementptr inbounds float , ptr %y , i32 %iv
1141
- %0 = load float , ptr %arrayidx , align 4
1142
- %call = tail call i64 @llvm.llround.i64.f32 (float %0 )
1143
- %arrayidx2 = getelementptr inbounds i64 , ptr %x , i32 %iv
1144
- store i64 %call , ptr %arrayidx2 , align 4
1145
- %iv.next = add i32 %iv , 1
1146
- %exitcond = icmp eq i32 %iv.next , %n
1147
- br i1 %exitcond , label %for.end , label %for.body
1148
-
1149
- for.end: ; preds = %for.body, %entry
1150
- ret void
1151
- }
1152
-
1153
- declare i64 @llvm.llround.i64.f32 (float )
1154
-
1155
- define void @llround_i64f64 (i32 %n , ptr %y , ptr %x ) {
1156
- ; CHECK-LABEL: @llround_i64f64(
1157
- ; CHECK: llvm.llround.v4i64.v4f64
1158
- ; CHECK: ret void
1159
- ;
1160
- entry:
1161
- br label %for.body
1162
-
1163
- for.body: ; preds = %entry, %for.body
1164
- %iv = phi i32 [ 0 , %entry ], [ %iv.next , %for.body ]
1165
- %arrayidx = getelementptr inbounds double , ptr %y , i32 %iv
1166
- %0 = load double , ptr %arrayidx , align 8
1167
- %call = tail call i64 @llvm.llround.i64.f64 (double %0 )
1168
- %arrayidx2 = getelementptr inbounds i64 , ptr %x , i32 %iv
1169
- store i64 %call , ptr %arrayidx2 , align 8
1170
- %iv.next = add i32 %iv , 1
1171
- %exitcond = icmp eq i32 %iv.next , %n
1172
- br i1 %exitcond , label %for.end , label %for.body
1173
-
1174
- for.end: ; preds = %for.body, %entry
1175
- ret void
1176
- }
1177
-
1178
- declare i64 @llvm.llround.i64.f64 (double )
1179
-
1180
979
define void @fma_f32 (i32 %n , ptr %y , ptr %x , ptr %z , ptr %w ) {
1181
980
; CHECK-LABEL: @fma_f32(
1182
981
; CHECK: llvm.fma.v4f32
0 commit comments