@@ -15472,12 +15472,16 @@ uint64_t test_vshld_n_u64(uint64_t a) {
15472
15472
// return (int32_t)vqshls_n_s32(a, 31);
15473
15473
// }
15474
15474
15475
- // NYI-LABEL: @test_vqshld_n_s64(
15476
- // NYI: [[VQSHL_N:%.*]] = call i64 @llvm.aarch64.neon.sqshl.i64(i64 %a, i64 63)
15477
- // NYI: ret i64 [[VQSHL_N]]
15478
- // int64_t test_vqshld_n_s64(int64_t a) {
15479
- // return (int64_t)vqshld_n_s64(a, 63);
15480
- // }
15475
+ int64_t test_vqshld_n_s64(int64_t a) {
15476
+ return (int64_t)vqshld_n_s64(a, 63);
15477
+
15478
+ // CIR-LABEL: vqshld_n_s64
15479
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.sqshl" {{.*}}, {{.*}} : (!s64i, !s64i) -> !s64i
15480
+
15481
+ // LLVM-LABEL: @test_vqshld_n_s64(
15482
+ // LLVM: [[VQSHL_N:%.*]] = call i64 @llvm.aarch64.neon.sqshl.i64(i64 %0, i64 63)
15483
+ // LLVM: ret i64 [[VQSHL_N]]
15484
+ }
15481
15485
15482
15486
// NYI-LABEL: @test_vqshl_n_s8(
15483
15487
// NYI: [[VQSHL_N:%.*]] = call <8 x i8> @llvm.aarch64.neon.sqshl.v8i8(<8 x i8> %a, <8 x i8> zeroinitializer)
@@ -15631,12 +15635,16 @@ uint64_t test_vshld_n_u64(uint64_t a) {
15631
15635
// return (uint32_t)vqshls_n_u32(a, 31);
15632
15636
// }
15633
15637
15634
- // NYI-LABEL: @test_vqshld_n_u64(
15635
- // NYI: [[VQSHL_N:%.*]] = call i64 @llvm.aarch64.neon.uqshl.i64(i64 %a, i64 63)
15636
- // NYI: ret i64 [[VQSHL_N]]
15637
- // uint64_t test_vqshld_n_u64(uint64_t a) {
15638
- // return (uint64_t)vqshld_n_u64(a, 63);
15639
- // }
15638
+ uint64_t test_vqshld_n_u64(uint64_t a) {
15639
+ return (uint64_t)vqshld_n_u64(a, 63);
15640
+
15641
+ // CIR-LABEL: vqshld_n_u64
15642
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.uqshl" {{.*}}, {{.*}} : (!u64i, !u64i) -> !u64i
15643
+
15644
+ // LLVM-LABEL: @test_vqshld_n_u64(
15645
+ // LLVM: [[VQSHL_N:%.*]] = call i64 @llvm.aarch64.neon.uqshl.i64(i64 %0, i64 63)
15646
+ // LLVM: ret i64 [[VQSHL_N]]
15647
+ }
15640
15648
15641
15649
// NYI-LABEL: @test_vqshl_n_u64(
15642
15650
// NYI: [[TMP0:%.*]] = bitcast <1 x i64> %a to <8 x i8>
0 commit comments