@@ -15209,12 +15209,16 @@ uint64_t test_vshrd_n_u64_3(uint64_t a) {
15209
15209
// LLVM: ret i64 [[SHRD_N]]
15210
15210
}
15211
15211
15212
- // NYI-LABEL: @test_vrshrd_n_s64(
15213
- // NYI: [[VRSHR_N:%.*]] = call i64 @llvm.aarch64.neon.srshl.i64(i64 %a, i64 -63)
15214
- // NYI: ret i64 [[VRSHR_N]]
15215
- // int64_t test_vrshrd_n_s64(int64_t a) {
15216
- // return (int64_t)vrshrd_n_s64(a, 63);
15217
- // }
15212
+ int64_t test_vrshrd_n_s64(int64_t a) {
15213
+ return (int64_t)vrshrd_n_s64(a, 63);
15214
+
15215
+ // CIR-LABEL: vrshrd_n_s64
15216
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.srshl" {{.*}}, {{.*}} : (!s64i, !s64i) -> !s64i
15217
+
15218
+ // LLVM-LABEL: @test_vrshrd_n_s64(
15219
+ // LLVM: [[VRSHR_N:%.*]] = call i64 @llvm.aarch64.neon.srshl.i64(i64 %0, i64 -63)
15220
+ // LLVM: ret i64 [[VRSHR_N]]
15221
+ }
15218
15222
15219
15223
// NYI-LABEL: @test_vrshr_n_s64(
15220
15224
// NYI: [[TMP0:%.*]] = bitcast <1 x i64> %a to <8 x i8>
@@ -15225,12 +15229,16 @@ uint64_t test_vshrd_n_u64_3(uint64_t a) {
15225
15229
// return vrshr_n_s64(a, 1);
15226
15230
// }
15227
15231
15228
- // NYI-LABEL: @test_vrshrd_n_u64(
15229
- // NYI: [[VRSHR_N:%.*]] = call i64 @llvm.aarch64.neon.urshl.i64(i64 %a, i64 -63)
15230
- // NYI: ret i64 [[VRSHR_N]]
15231
- // uint64_t test_vrshrd_n_u64(uint64_t a) {
15232
- // return (uint64_t)vrshrd_n_u64(a, 63);
15233
- // }
15232
+ uint64_t test_vrshrd_n_u64(uint64_t a) {
15233
+ return (uint64_t)vrshrd_n_u64(a, 63);
15234
+
15235
+ // CIR-LABEL: vrshrd_n_u64
15236
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.urshl" {{.*}}, {{.*}} : (!u64i, !s64i) -> !u64i
15237
+
15238
+ // LLVM-LABEL: @test_vrshrd_n_u64(
15239
+ // LLVM: [[VRSHR_N:%.*]] = call i64 @llvm.aarch64.neon.urshl.i64(i64 %0, i64 -63)
15240
+ // LLVM: ret i64 [[VRSHR_N]]
15241
+ }
15234
15242
15235
15243
// NYI-LABEL: @test_vrshr_n_u64(
15236
15244
// NYI: [[TMP0:%.*]] = bitcast <1 x i64> %a to <8 x i8>
0 commit comments