@@ -15472,12 +15472,16 @@ uint64_t test_vshld_n_u64(uint64_t a) {
1547215472// return (int32_t)vqshls_n_s32(a, 31);
1547315473// }
1547415474
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+ }
1548115485
1548215486// NYI-LABEL: @test_vqshl_n_s8(
1548315487// 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) {
1563115635// return (uint32_t)vqshls_n_u32(a, 31);
1563215636// }
1563315637
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+ }
1564015648
1564115649// NYI-LABEL: @test_vqshl_n_u64(
1564215650// NYI: [[TMP0:%.*]] = bitcast <1 x i64> %a to <8 x i8>
0 commit comments