diff --git a/clang/include/clang/CIR/Dialect/IR/CIRDialect.td b/clang/include/clang/CIR/Dialect/IR/CIRDialect.td index ddf5bdfe5ce7..5ec1865bc3e2 100644 --- a/clang/include/clang/CIR/Dialect/IR/CIRDialect.td +++ b/clang/include/clang/CIR/Dialect/IR/CIRDialect.td @@ -42,7 +42,7 @@ def CIR_Dialect : Dialect { void printType(mlir::Type type, mlir::DialectAsmPrinter &printer) const override; mlir::Attribute parseAttribute(mlir::DialectAsmParser &parser, - mlir::Type type) const override; + mlir::Type type) const override; void printAttribute(mlir::Attribute attr, mlir::DialectAsmPrinter &os) const override; }]; diff --git a/clang/test/CIR/CodeGen/AArch64/neon.c b/clang/test/CIR/CodeGen/AArch64/neon.c index b789c2a840c5..18a203e53975 100644 --- a/clang/test/CIR/CodeGen/AArch64/neon.c +++ b/clang/test/CIR/CodeGen/AArch64/neon.c @@ -858,7 +858,7 @@ int16x4_t test_vabd_s16(int16x4_t v1, int16x4_t v2) { return vabd_s16(v1, v2); // CIR-LABEL: vabd_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_s16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -870,7 +870,7 @@ int32x2_t test_vabd_s32(int32x2_t v1, int32x2_t v2) { return vabd_s32(v1, v2); // CIR-LABEL: vabd_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_s32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -882,7 +882,7 @@ uint8x8_t test_vabd_u8(uint8x8_t v1, uint8x8_t v2) { return vabd_u8(v1, v2); // CIR-LABEL: vabd_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_u8(<8 x i8>{{.*}}[[V1:%.*]], <8 x i8>{{.*}}[[V2:%.*]]) @@ -894,7 +894,7 @@ uint16x4_t test_vabd_u16(uint16x4_t v1, uint16x4_t v2) { return vabd_u16(v1, v2); // CIR-LABEL: vabd_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_u16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -906,7 +906,7 @@ uint32x2_t test_vabd_u32(uint32x2_t v1, uint32x2_t v2) { return vabd_u32(v1, v2); // CIR-LABEL: vabd_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_u32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -918,7 +918,7 @@ float32x2_t test_vabd_f32(float32x2_t v1, float32x2_t v2) { return vabd_f32(v1, v2); // CIR-LABEL: vabd_f32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.fabd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.fabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) // LLVM: {{.*}}test_vabd_f32(<2 x float>{{.*}}[[V1:%.*]], <2 x float>{{.*}}[[V2:%.*]]) @@ -980,7 +980,7 @@ uint16x8_t test_vabdq_u16(uint16x8_t v1, uint16x8_t v2) { // CIR-LABEL: vabdq_u16 // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uabd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) - + // LLVM: {{.*}}test_vabdq_u16(<8 x i16>{{.*}}[[V1:%.*]], <8 x i16>{{.*}}[[V2:%.*]]) // LLVM: [[VABD_I:%.*]] = call <8 x i16> @llvm.aarch64.neon.uabd.v8i16(<8 x i16> [[V1]], <8 x i16> [[V2]]) // LLVM: ret <8 x i16> [[VABD_I]] @@ -2572,7 +2572,7 @@ int8x8_t test_vhadd_s8(int8x8_t v1, int8x8_t v2) { return vhadd_s8(v1, v2); // CIR-LABEL: vhadd_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_s8(<8 x i8>{{.*}}[[V1:%.*]], <8 x i8>{{.*}}[[V2:%.*]]) @@ -2584,7 +2584,7 @@ int16x4_t test_vhadd_s16(int16x4_t v1, int16x4_t v2) { return vhadd_s16(v1, v2); // CIR-LABEL: vhadd_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_s16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -2599,7 +2599,7 @@ int32x2_t test_vhadd_s32(int32x2_t v1, int32x2_t v2) { return vhadd_s32(v1, v2); // CIR-LABEL: vhadd_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_s32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -2614,7 +2614,7 @@ uint8x8_t test_vhadd_u8(uint8x8_t v1, uint8x8_t v2) { return vhadd_u8(v1, v2); // CIR-LABEL: vhadd_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_u8(<8 x i8>{{.*}}[[V1:%.*]], <8 x i8>{{.*}}[[V2:%.*]]) @@ -2626,7 +2626,7 @@ uint16x4_t test_vhadd_u16(uint16x4_t v1, uint16x4_t v2) { return vhadd_u16(v1, v2); // CIR-LABEL: vhadd_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_u16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -2641,7 +2641,7 @@ uint32x2_t test_vhadd_u32(uint32x2_t v1, uint32x2_t v2) { return vhadd_u32(v1, v2); // CIR-LABEL: vhadd_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhadd_u32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -2656,7 +2656,7 @@ int8x16_t test_vhaddq_s8(int8x16_t v1, int8x16_t v2) { return vhaddq_s8(v1, v2); // CIR-LABEL: vhaddq_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_s8(<16 x i8>{{.*}}[[V1:%.*]], <16 x i8>{{.*}}[[V2:%.*]]) @@ -2668,7 +2668,7 @@ int16x8_t test_vhaddq_s16(int16x8_t v1, int16x8_t v2) { return vhaddq_s16(v1, v2); // CIR-LABEL: vhaddq_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_s16(<8 x i16>{{.*}}[[V1:%.*]], <8 x i16>{{.*}}[[V2:%.*]]) @@ -2683,7 +2683,7 @@ int32x4_t test_vhaddq_s32(int32x4_t v1, int32x4_t v2) { return vhaddq_s32(v1, v2); // CIR-LABEL: vhaddq_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.shadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_s32(<4 x i32>{{.*}}[[V1:%.*]], <4 x i32>{{.*}}[[V2:%.*]]) @@ -2698,7 +2698,7 @@ uint8x16_t test_vhaddq_u8(uint8x16_t v1, uint8x16_t v2) { return vhaddq_u8(v1, v2); // CIR-LABEL: vhaddq_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_u8(<16 x i8>{{.*}}[[V1:%.*]], <16 x i8>{{.*}}[[V2:%.*]]) @@ -2710,7 +2710,7 @@ uint16x8_t test_vhaddq_u16(uint16x8_t v1, uint16x8_t v2) { return vhaddq_u16(v1, v2); // CIR-LABEL: vhaddq_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_u16(<8 x i16>{{.*}}[[V1:%.*]], <8 x i16>{{.*}}[[V2:%.*]]) @@ -2725,7 +2725,7 @@ uint32x4_t test_vhaddq_u32(uint32x4_t v1, uint32x4_t v2) { return vhaddq_u32(v1, v2); // CIR-LABEL: vhaddq_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vhaddq_u32(<4 x i32>{{.*}}[[V1:%.*]], <4 x i32>{{.*}}[[V2:%.*]]) @@ -2908,7 +2908,7 @@ int8x8_t test_vrhadd_s8(int8x8_t v1, int8x8_t v2) { return vrhadd_s8(v1, v2); // CIR-LABEL: vrhadd_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_s8(<8 x i8>{{.*}}[[V1:%.*]], <8 x i8>{{.*}}[[V2:%.*]]) @@ -2920,7 +2920,7 @@ int16x4_t test_vrhadd_s16(int16x4_t v1, int16x4_t v2) { return vrhadd_s16(v1, v2); // CIR-LABEL: vrhadd_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_s16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -2935,7 +2935,7 @@ int32x2_t test_vrhadd_s32(int32x2_t v1, int32x2_t v2) { return vrhadd_s32(v1, v2); // CIR-LABEL: vrhadd_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_s32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -2950,7 +2950,7 @@ uint8x8_t test_vrhadd_u8(uint8x8_t v1, uint8x8_t v2) { return vrhadd_u8(v1, v2); // CIR-LABEL: vrhadd_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_u8(<8 x i8>{{.*}}[[V1:%.*]], <8 x i8>{{.*}}[[V2:%.*]]) @@ -2962,7 +2962,7 @@ uint16x4_t test_vrhadd_u16(uint16x4_t v1, uint16x4_t v2) { return vrhadd_u16(v1, v2); // CIR-LABEL: vrhadd_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_u16(<4 x i16>{{.*}}[[V1:%.*]], <4 x i16>{{.*}}[[V2:%.*]]) @@ -2977,7 +2977,7 @@ uint32x2_t test_vrhadd_u32(uint32x2_t v1, uint32x2_t v2) { return vrhadd_u32(v1, v2); // CIR-LABEL: vrhadd_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhadd_u32(<2 x i32>{{.*}}[[V1:%.*]], <2 x i32>{{.*}}[[V2:%.*]]) @@ -2992,7 +2992,7 @@ int8x16_t test_vrhaddq_s8(int8x16_t v1, int8x16_t v2) { return vrhaddq_s8(v1, v2); // CIR-LABEL: vrhaddq_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_s8(<16 x i8>{{.*}}[[V1:%.*]], <16 x i8>{{.*}}[[V2:%.*]]) @@ -3004,7 +3004,7 @@ int16x8_t test_vrhaddq_s16(int16x8_t v1, int16x8_t v2) { return vrhaddq_s16(v1, v2); // CIR-LABEL: vrhaddq_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_s16(<8 x i16>{{.*}}[[V1:%.*]], <8 x i16>{{.*}}[[V2:%.*]]) @@ -3019,7 +3019,7 @@ int32x4_t test_vrhaddq_s32(int32x4_t v1, int32x4_t v2) { return vrhaddq_s32(v1, v2); // CIR-LABEL: vrhaddq_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_s32(<4 x i32>{{.*}}[[V1:%.*]], <4 x i32>{{.*}}[[V2:%.*]]) @@ -3034,7 +3034,7 @@ uint8x16_t test_vrhaddq_u8(uint8x16_t v1, uint8x16_t v2) { return vrhaddq_u8(v1, v2); // CIR-LABEL: vrhaddq_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_u8(<16 x i8>{{.*}}[[V1:%.*]], <16 x i8>{{.*}}[[V2:%.*]]) @@ -3046,7 +3046,7 @@ uint16x8_t test_vrhaddq_u16(uint16x8_t v1, uint16x8_t v2) { return vrhaddq_u16(v1, v2); // CIR-LABEL: vrhaddq_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_u16(<8 x i16>{{.*}}[[V1:%.*]], <8 x i16>{{.*}}[[V2:%.*]]) @@ -3061,7 +3061,7 @@ uint32x4_t test_vrhaddq_u32(uint32x4_t v1, uint32x4_t v2) { return vrhaddq_u32(v1, v2); // CIR-LABEL: vrhaddq_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urhadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrhaddq_u32(<4 x i32>{{.*}}[[V1:%.*]], <4 x i32>{{.*}}[[V2:%.*]]) @@ -3075,7 +3075,7 @@ uint32x4_t test_vrhaddq_u32(uint32x4_t v1, uint32x4_t v2) { int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { return vqadd_s8(a, b); // CIR-LABEL: vqadd_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_s8( @@ -3086,7 +3086,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) { return vqadd_s16(a, b); // CIR-LABEL: vqadd_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_s16( @@ -3100,7 +3100,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) { return vqadd_s32(a, b); // CIR-LABEL: vqadd_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_s32( @@ -3114,7 +3114,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) { return vqadd_s64(a, b); // CIR-LABEL: vqadd_s64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_s64( @@ -3123,12 +3123,12 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { // LLVM: [[VQADD_V2_I:%.*]] = call <1 x i64> @llvm.aarch64.neon.sqadd.v1i64(<1 x i64> %0, <1 x i64> %1) // LLVM: [[VQADD_V3_I:%.*]] = bitcast <1 x i64> [[VQADD_V2_I]] to <8 x i8> // LLVM: ret <1 x i64> [[VQADD_V2_I]] - } + } uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) { return vqadd_u8(a, b); // CIR-LABEL: vqadd_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_u8( @@ -3139,7 +3139,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) { return vqadd_u16(a, b); // CIR-LABEL: vqadd_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_u16( @@ -3150,7 +3150,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) { return vqadd_u32(a, b); // CIR-LABEL: vqadd_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_u32( @@ -3161,7 +3161,7 @@ int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) { return vqadd_u64(a, b); // CIR-LABEL: vqadd_u64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.uqadd" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM-LABEL: @test_vqadd_u64( @@ -3469,7 +3469,7 @@ int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) { return vshlq_s8(a, b); // CIR-LABEL: vshlq_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_s8(<16 x i8>{{.*}}[[A:%.*]], <16 x i8>{{.*}}[[B:%.*]]) @@ -3481,7 +3481,7 @@ int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) { return vshlq_s16(a, b); // CIR-LABEL: vshlq_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_s16(<8 x i16>{{.*}}[[A:%.*]], <8 x i16>{{.*}}[[B:%.*]]) @@ -3496,7 +3496,7 @@ int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) { return vshlq_s32(a, b); // CIR-LABEL: vshlq_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_s32(<4 x i32>{{.*}}[[A:%.*]], <4 x i32>{{.*}}[[B:%.*]]) @@ -3511,7 +3511,7 @@ int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) { return vshlq_s64(a, b); // CIR-LABEL: vshlq_s64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sshl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_s64(<2 x i64>{{.*}}[[A:%.*]], <2 x i64>{{.*}}[[B:%.*]]) @@ -3526,7 +3526,7 @@ uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) { return vshlq_u8(a, b); // CIR-LABEL: vshlq_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_u8(<16 x i8>{{.*}}[[A:%.*]], <16 x i8>{{.*}}[[B:%.*]]) @@ -3538,7 +3538,7 @@ uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) { return vshlq_u16(a, b); // CIR-LABEL: vshlq_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_u16(<8 x i16>{{.*}}[[A:%.*]], <8 x i16>{{.*}}[[B:%.*]]) @@ -3568,7 +3568,7 @@ uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) { return vshlq_u64(a, b); // CIR-LABEL: vshlq_u64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.ushl" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vshlq_u64(<2 x i64>{{.*}}[[A:%.*]], <2 x i64>{{.*}}[[B:%.*]]) @@ -4178,7 +4178,7 @@ int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) { // CIR-LABEL: vmin_s8 // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smin" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector - + // LLVM: {{.*}}@test_vmin_s8(<8 x i8>{{.*}}[[A:%.*]], <8 x i8>{{.*}}[[B:%.*]]) // LLVM: [[VMIN_I:%.*]] = call <8 x i8> @llvm.aarch64.neon.smin.v8i8(<8 x i8> [[A]], <8 x i8> [[B]]) // LLVM: ret <8 x i8> [[VMIN_I]] @@ -4878,7 +4878,7 @@ int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) { return vqdmulh_s16(a, b); // CIR-LABEL: vqdmulh_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vqdmulh_s16(<4 x i16>{{.*}}[[A:%.*]], <4 x i16>{{.*}}[[B:%.*]]) @@ -4893,7 +4893,7 @@ int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) { return vqdmulh_s32(a, b); // CIR-LABEL: vqdmulh_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vqdmulh_s32(<2 x i32>{{.*}}[[A:%.*]], <2 x i32>{{.*}}[[B:%.*]]) @@ -4908,7 +4908,7 @@ int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) { return vqdmulhq_s16(a, b); // CIR-LABEL: vqdmulhq_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqdmulh" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vqdmulhq_s16(<8 x i16>{{.*}}[[A:%.*]], <8 x i16>{{.*}}[[B:%.*]]) @@ -4968,7 +4968,7 @@ int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) { return vqrdmulhq_s16(a, b); // CIR-LABEL: vqrdmulhq_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqrdmulh" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqrdmulh" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vqrdmulhq_s16(<8 x i16>{{.*}}[[A:%.*]], <8 x i16>{{.*}}[[B:%.*]]) @@ -5026,9 +5026,9 @@ int8x8_t test_vshl_n_s8(int8x8_t a) { return vshl_n_s8(a, 3); // CIR-LABEL: @test_vshl_n_s8 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, // CIR-SAME: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i]> - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshl_n_s8(<8 x i8>{{.*}}[[A:%.*]]) // LLVM: [[VSHL_N:%.*]] = shl <8 x i8> [[A]], @@ -5040,15 +5040,15 @@ int16x4_t test_vshl_n_s16(int16x4_t a) { return vshl_n_s16(a, 3); // CIR-LABEL: @test_vshl_n_s16 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, // CIR-SAME: #cir.int<3> : !s16i]> - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshl_n_s16(<4 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i16> [[A]] to <8 x i8> // LLVM: [[TMP1:%.*]] = bitcast <8 x i8> [[TMP0]] to <4 x i16> // LLVM: [[VSHL_N:%.*]] = shl <4 x i16> [[TMP1]], - // LLVM: ret <4 x i16> [[VSHL_N]] + // LLVM: ret <4 x i16> [[VSHL_N]] } int32x2_t test_vshl_n_s32(int32x2_t a) { @@ -5056,7 +5056,7 @@ int32x2_t test_vshl_n_s32(int32x2_t a) { // CIR-LABEL: @test_vshl_n_s32 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : !s32i]> - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshl_n_s32(<2 x i32>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <2 x i32> [[A]] to <8 x i8> @@ -5070,9 +5070,9 @@ int32x2_t test_vshl_n_s32(int32x2_t a) { // NYI: ret <16 x i8> [[VSHL_N]] int8x16_t test_vshlq_n_s8(int8x16_t a) { return vshlq_n_s8(a, 3); - + // CIR-LABEL: @test_vshlq_n_s8 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_s8(<16 x i8>{{.*}}[[A:%.*]]) // LLVM: [[VSHL_N:%.*]] = shl <16 x i8> [[A]], @@ -5083,7 +5083,7 @@ int16x8_t test_vshlq_n_s16(int16x8_t a) { return vshlq_n_s16(a, 3); // CIR-LABEL: @test_vshlq_n_s16 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_s16(<8 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <8 x i16> [[A]] to <16 x i8> @@ -5097,10 +5097,10 @@ int32x4_t test_vshlq_n_s32(int32x4_t a) { return vshlq_n_s32(a, 3); // CIR-LABEL: @test_vshlq_n_s32 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : // CIR-SAME: !s32i, #cir.int<3> : !s32i, #cir.int<3> : !s32i]> - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_s32(<4 x i32>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> [[A]] to <16 x i8> @@ -5114,7 +5114,7 @@ int64x2_t test_vshlq_n_s64(int64x2_t a) { // CIR-LABEL: @test_vshlq_n_s64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s64i, #cir.int<3> : !s64i]> - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, [[AMT]] : // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_s64(<2 x i64>{{.*}}[[A:%.*]]) @@ -5128,8 +5128,8 @@ uint8x8_t test_vshl_n_u8(uint8x8_t a) { return vshl_n_u8(a, 3); // CIR-LABEL: @test_vshl_n_u8 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshl_n_u8(<8 x i8>{{.*}}[[A:%.*]]) // LLVM: [[VSHL_N:%.*]] = shl <8 x i8> [[A]], @@ -5140,8 +5140,8 @@ uint16x4_t test_vshl_n_u16(uint16x4_t a) { return vshl_n_u16(a, 3); // CIR-LABEL: @test_vshl_n_u16 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshl_n_u16(<4 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i16> [[A]] to <8 x i8> @@ -5154,9 +5154,9 @@ uint32x2_t test_vshl_n_u32(uint32x2_t a) { return vshl_n_u32(a, 3); // CIR-LABEL: @test_vshl_n_u32 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector - + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector + // LLVM: {{.*}}@test_vshl_n_u32(<2 x i32>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <2 x i32> [[A]] to <8 x i8> // LLVM: [[TMP1:%.*]] = bitcast <8 x i8> [[TMP0]] @@ -5168,8 +5168,8 @@ uint8x16_t test_vshlq_n_u8(uint8x16_t a) { return vshlq_n_u8(a, 3); // CIR-LABEL: @test_vshlq_n_u8 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_u8(<16 x i8>{{.*}}[[A:%.*]]) // LLVM: [[VSHL_N:%.*]] = shl <16 x i8> [[A]], , {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_u16(<8 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <8 x i16> [[A]] to <16 x i8> @@ -5195,8 +5195,8 @@ uint32x4_t test_vshlq_n_u32(uint32x4_t a) { return vshlq_n_u32(a, 3); // CIR-LABEL: @test_vshlq_n_u32 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_u32(<4 x i32>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> [[A]] to <16 x i8> @@ -5209,8 +5209,8 @@ uint64x2_t test_vshlq_n_u64(uint64x2_t a) { return vshlq_n_u64(a, 3); // CIR-LABEL: @test_vshlq_n_u64 - // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : - // CIR-SAME: !cir.vector) -> !cir.vector + // CIR: {{.*}} = cir.shift(left, {{.*}} : !cir.vector, {{.*}} : + // CIR-SAME: !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshlq_n_u64(<2 x i64>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <2 x i64> [[A]] to <16 x i8> @@ -5323,7 +5323,7 @@ int32x4_t test_vshrq_n_s32(int32x4_t a) { } // Vector lashr/ashr are undefined when the shift amount is equal to the vector -// element size. Thus in code gen, for singed input, we make the shift amount +// element size. Thus in code gen, for singed input, we make the shift amount // one less than the vector element size. int32x4_t test_vshrq_n_s32_32(int32x4_t a) { return vshrq_n_s32(a, 32); @@ -5388,8 +5388,8 @@ uint16x4_t test_vshr_n_u16_16(uint16x4_t a) { return vshr_n_u16(a, 16); // CIR-LABEL: vshr_n_u16 - // CIR: {{%.*}} = cir.const #cir.int<16> : !s32i - // CIR: {{%.*}} = cir.const #cir.zero : !cir.vector + // CIR: {{%.*}} = cir.const #cir.int<16> : !s32i + // CIR: {{%.*}} = cir.const #cir.zero : !cir.vector // CIR-NOT: cir.shift // LLVM: {{.*}}test_vshr_n_u16_16(<4 x i16>{{.*}}[[A:%.*]]) @@ -5643,7 +5643,7 @@ int8x8_t test_vrshr_n_s8(int8x8_t a) { // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_s8(<8 x i8>{{.*}}[[A:%.*]]) @@ -5658,7 +5658,7 @@ uint8x8_t test_vrshr_n_u8(uint8x8_t a) { // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_u8(<8 x i8>{{.*}}[[A:%.*]]) @@ -5672,7 +5672,7 @@ int16x4_t test_vrshr_n_s16(int16x4_t a) { // CIR-LABEL: vrshr_n_s16 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s16i, #cir.int<-3> : !s16i, // CIR-SAME: #cir.int<-3> : !s16i, #cir.int<-3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_s16(<4 x i16>{{.*}}[[A:%.*]]) @@ -5688,7 +5688,7 @@ uint16x4_t test_vrshr_n_u16(uint16x4_t a) { // CIR-LABEL: vrshr_n_u16 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s16i, #cir.int<-3> : !s16i, // CIR-SAME: #cir.int<-3> : !s16i, #cir.int<-3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_u16(<4 x i16>{{.*}}[[A:%.*]]) @@ -5703,7 +5703,7 @@ int32x2_t test_vrshr_n_s32(int32x2_t a) { // CIR-LABEL: vrshr_n_s32 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s32i, #cir.int<-3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_s32(<2 x i32>{{.*}}[[A:%.*]]) @@ -5718,7 +5718,7 @@ uint32x2_t test_vrshr_n_u32(uint32x2_t a) { // CIR-LABEL: vrshr_n_u32 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s32i, #cir.int<-3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_u32(<2 x i32>{{.*}}[[A:%.*]]) @@ -5733,7 +5733,7 @@ int64x1_t test_vrshr_n_s64(int64x1_t a) { // CIR-LABEL: vrshr_n_s64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s64i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_s64(<1 x i64>{{.*}}[[A:%.*]]) @@ -5748,7 +5748,7 @@ uint64x1_t test_vrshr_n_u64(uint64x1_t a) { // CIR-LABEL: vrshr_n_u64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s64i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshr_n_u64(<1 x i64>{{.*}}[[A:%.*]]) @@ -5766,11 +5766,11 @@ int8x16_t test_vrshrq_n_s8(int8x16_t a) { // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_s8(<16 x i8>{{.*}}[[A:%.*]]) - // LLVM: [[VRSHR_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8> [[A]], + // LLVM: [[VRSHR_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8> [[A]], // LLVM-SAME: <16 x i8> ) // LLVM: ret <16 x i8> [[VRSHR_N]] } @@ -5783,11 +5783,11 @@ uint8x16_t test_vrshrq_n_u8(uint8x16_t a) { // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, // CIR-SAME: #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i, #cir.int<-3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_u8(<16 x i8>{{.*}}[[A:%.*]]) - // LLVM: [[VRSHR_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.urshl.v16i8(<16 x i8> [[A]], + // LLVM: [[VRSHR_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.urshl.v16i8(<16 x i8> [[A]], // LLVM-SAME: <16 x i8> ) // LLVM: ret <16 x i8> [[VRSHR_N]] } @@ -5798,7 +5798,7 @@ int16x8_t test_vrshrq_n_s16(int16x8_t a) { // CIR-LABEL: vrshrq_n_s16 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, // CIR-SAME: #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_s16(<8 x i16>{{.*}}[[A:%.*]]) @@ -5814,7 +5814,7 @@ uint16x8_t test_vrshrq_n_u16(uint16x8_t a) { // CIR-LABEL: vrshrq_n_u16 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, // CIR-SAME: #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i, #cir.int<-3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_u16(<8 x i16>{{.*}}[[A:%.*]]) @@ -5829,7 +5829,7 @@ int32x4_t test_vrshrq_n_s32(int32x4_t a) { // CIR-LABEL: vrshrq_n_s32 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s32i, #cir.int<-3> : !s32i, #cir.int<-3> : !s32i, #cir.int<-3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_s32(<4 x i32>{{.*}}[[A:%.*]]) @@ -5843,9 +5843,9 @@ uint32x4_t test_vrshrq_n_u32(uint32x4_t a) { return vrshrq_n_u32(a, 3); // CIR-LABEL: vrshrq_n_u32 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s32i, #cir.int<-3> : !s32i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s32i, #cir.int<-3> : !s32i, // CIR-SAME: #cir.int<-3> : !s32i, #cir.int<-3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_u32(<4 x i32>{{.*}}[[A:%.*]]) @@ -5860,7 +5860,7 @@ int64x2_t test_vrshrq_n_s64(int64x2_t a) { // CIR-LABEL: vrshrq_n_s64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s64i, #cir.int<-3> : !s64i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.srshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_s64(<2 x i64>{{.*}}[[A:%.*]]) @@ -5875,7 +5875,7 @@ uint64x2_t test_vrshrq_n_u64(uint64x2_t a) { // CIR-LABEL: vrshrq_n_u64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<-3> : !s64i, #cir.int<-3> : !s64i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.urshl" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vrshrq_n_u64(<2 x i64>{{.*}}[[A:%.*]]) @@ -6389,9 +6389,9 @@ uint8x8_t test_vqshlu_n_s8(int8x8_t a) { return vqshlu_n_s8(a, 3); // CIR-LABEL: vqshlu_n_s8 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, // CIR: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshlu_n_s8(<8 x i8>{{.*}}[[A:%.*]]) @@ -6403,9 +6403,9 @@ uint16x4_t test_vqshlu_n_s16(int16x4_t a) { return vqshlu_n_s16(a, 3); // CIR-LABEL: vqshlu_n_s16 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, // CIR-SAME:#cir.int<3> : !s16i, #cir.int<3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshlu_n_s16(<4 x i16>{{.*}}[[A:%.*]]) @@ -6420,7 +6420,7 @@ uint32x2_t test_vqshlu_n_s32(int32x2_t a) { // CIR-LABEL: vqshlu_n_s32 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshlu_n_s32(<2 x i32>{{.*}}[[A:%.*]]) @@ -6433,15 +6433,15 @@ uint8x16_t test_vqshluq_n_s8(int8x16_t a) { return vqshluq_n_s8(a, 3); // CIR-LABEL: vqshluq_n_s8 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, - // CIR-SAME: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, + // CIR-SAME: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, // CIR-SAME: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, // CIR-SAME: #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i, #cir.int<3> : !s8i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshluq_n_s8(<16 x i8>{{.*}}[[A:%.*]]) - // LLVM: [[VQSHLUQ_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.sqshlu.v16i8(<16 x i8> [[A]], + // LLVM: [[VQSHLUQ_N:%.*]] = call <16 x i8> @llvm.aarch64.neon.sqshlu.v16i8(<16 x i8> [[A]], // LLVM-SAME: <16 x i8> ) // LLVM: ret <16 x i8> [[VQSHLUQ_N]] } @@ -6450,16 +6450,16 @@ uint16x8_t test_vqshluq_n_s16(int16x8_t a) { return vqshluq_n_s16(a, 3); // CIR-LABEL: vqshluq_n_s16 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, - // CIR-SAME: #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, + // CIR-SAME: #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, // CIR-SAME: #cir.int<3> : !s16i, #cir.int<3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshluq_n_s16(<8 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <8 x i16> [[A]] to <16 x i8> // LLVM: [[VQSHLUQ_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <8 x i16> - // LLVM: [[VQSHLUQ_N1:%.*]] = call <8 x i16> @llvm.aarch64.neon.sqshlu.v8i16(<8 x i16> [[VQSHLUQ_N]], + // LLVM: [[VQSHLUQ_N1:%.*]] = call <8 x i16> @llvm.aarch64.neon.sqshlu.v8i16(<8 x i16> [[VQSHLUQ_N]], // LLVM-SAME: <8 x i16> ) // LLVM: ret <8 x i16> [[VQSHLUQ_N1]] } @@ -6468,15 +6468,15 @@ uint32x4_t test_vqshluq_n_s32(int32x4_t a) { return vqshluq_n_s32(a, 3); // CIR-LABEL: vqshluq_n_s32 - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : !s32i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : !s32i, // CIR-SAME: #cir.int<3> : !s32i, #cir.int<3> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshluq_n_s32(<4 x i32>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> [[A]] to <16 x i8> // LLVM: [[VQSHLUQ_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <4 x i32> - // LLVM: [[VQSHLUQ_N1:%.*]] = call <4 x i32> @llvm.aarch64.neon.sqshlu.v4i32(<4 x i32> [[VQSHLUQ_N]], + // LLVM: [[VQSHLUQ_N1:%.*]] = call <4 x i32> @llvm.aarch64.neon.sqshlu.v4i32(<4 x i32> [[VQSHLUQ_N]], // LLVM-SAME: <4 x i32> ) // LLVM: ret <4 x i32> [[VQSHLUQ_N1]] } @@ -6486,13 +6486,13 @@ uint64x2_t test_vqshluq_n_s64(int64x2_t a) { // CIR-LABEL: vqshluq_n_s64 // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s64i, #cir.int<3> : !s64i]> : !cir.vector - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqshlu" {{%.*}}, [[AMT]] : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vqshluq_n_s64(<2 x i64>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <2 x i64> [[A]] to <16 x i8> // LLVM: [[VQSHLUQ_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <2 x i64> - // LLVM: [[VQSHLUQ_N1:%.*]] = call <2 x i64> @llvm.aarch64.neon.sqshlu.v2i64(<2 x i64> [[VQSHLUQ_N]], + // LLVM: [[VQSHLUQ_N1:%.*]] = call <2 x i64> @llvm.aarch64.neon.sqshlu.v2i64(<2 x i64> [[VQSHLUQ_N]], // LLVM-SAME: <2 x i64> ) // LLVM: ret <2 x i64> [[VQSHLUQ_N1]] } @@ -6502,7 +6502,7 @@ int8x8_t test_vshrn_n_s16(int16x8_t a) { // CIR-LABEL: vshrn_n_s16 // CIR: [[TGT:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, // CIR-SAME: #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i]> : !cir.vector // CIR: [[RES:%.*]] = cir.shift(right, [[TGT]] : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector // CIR: {{%.*}} = cir.cast(integral, [[RES]] : !cir.vector), !cir.vector @@ -6555,7 +6555,7 @@ uint8x8_t test_vshrn_n_u16(uint16x8_t a) { // CIR-LABEL: vshrn_n_u16 // CIR: [[TGT:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !u16i, #cir.int<3> : !u16i, #cir.int<3> : !u16i, + // CIR: [[AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !u16i, #cir.int<3> : !u16i, #cir.int<3> : !u16i, // CIR-SAME: #cir.int<3> : !u16i, #cir.int<3> : !u16i, #cir.int<3> : !u16i, #cir.int<3> : !u16i, #cir.int<3> : !u16i]> : !cir.vector // CIR: [[RES:%.*]] = cir.shift(right, [[TGT]] : !cir.vector, [[AMT]] : !cir.vector) -> !cir.vector // CIR: {{%.*}} = cir.cast(integral, [[RES]] : !cir.vector), !cir.vector @@ -6747,7 +6747,7 @@ int32x2_t test_vrshrn_n_s64(int64x2_t a) { return vrshrn_n_s64(a, 19); // CIR-LABEL: vrshrn_n_s64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector // LLVM: {{.*}}test_vrshrn_n_s64(<2 x i64>{{.*}}[[A:%.*]]) @@ -6761,7 +6761,7 @@ uint8x8_t test_vrshrn_n_u16(uint16x8_t a) { return vrshrn_n_u16(a, 3); // CIR-LABEL: vrshrn_n_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector // LLVM: {{.*}}test_vrshrn_n_u16(<8 x i16>{{.*}}[[A:%.*]]) @@ -6775,7 +6775,7 @@ uint16x4_t test_vrshrn_n_u32(uint32x4_t a) { return vrshrn_n_u32(a, 9); // CIR-LABEL: vrshrn_n_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector // LLVM: {{.*}}vrshrn_n_u32(<4 x i32>{{.*}}[[A:%.*]]) @@ -6789,7 +6789,7 @@ uint32x2_t test_vrshrn_n_u64(uint64x2_t a) { return vrshrn_n_u64(a, 19); // CIR-LABEL: vrshrn_n_u64 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.rshrn" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector // LLVM: {{.*}}test_vrshrn_n_u64(<2 x i64>{{.*}}[[A:%.*]]) @@ -6864,10 +6864,10 @@ uint8x8_t test_vqrshrun_n_s16(int16x8_t a) { return vqrshrun_n_s16(a, 3); // CIR-LABEL: test_vqrshrun_n_s16 // CIR: [[INTRN_ARG1:%.*]] = cir.const #cir.int<3> : !s32i - // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector + // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqrshrun" [[INTRN_ARG0]], [[INTRN_ARG1]] : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector - + // LLVM-LABEL: @test_vqrshrun_n_s16( // LLVM: [[TMP0:%.*]] = bitcast <8 x i16> {{%.*}} to <16 x i8> // LLVM: [[VQRSHRUN_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <8 x i16> @@ -6879,10 +6879,10 @@ uint16x4_t test_vqrshrun_n_s32(int32x4_t a) { return vqrshrun_n_s32(a, 9); // CIR-LABEL: test_vqrshrun_n_s32 // CIR: [[INTRN_ARG1:%.*]] = cir.const #cir.int<9> : !s32i - // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector + // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqrshrun" [[INTRN_ARG0]], [[INTRN_ARG1]] : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector - + // LLVM-LABEL: @test_vqrshrun_n_s32( // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> {{%.*}} to <16 x i8> // LLVM: [[VQRSHRUN_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <4 x i32> @@ -6894,10 +6894,10 @@ uint32x2_t test_vqrshrun_n_s64(int64x2_t a) { return vqrshrun_n_s64(a, 19); // CIR-LABEL: test_vqrshrun_n_s64 // CIR: [[INTRN_ARG1:%.*]] = cir.const #cir.int<19> : !s32i - // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector + // CIR: [[INTRN_ARG0:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.sqrshrun" [[INTRN_ARG0]], [[INTRN_ARG1]] : // CIR-SAME: (!cir.vector, !s32i) -> !cir.vector - + // LLVM-LABEL: @test_vqrshrun_n_s64( // LLVM: [[TMP0:%.*]] = bitcast <2 x i64> {{%.*}} to <16 x i8> // LLVM: [[VQRSHRUN_N:%.*]] = bitcast <16 x i8> [[TMP0]] to <2 x i64> @@ -7170,8 +7170,8 @@ int16x8_t test_vshll_n_s8(int8x8_t a) { // CIR: [[SHIFT_TGT:%.*]] = cir.cast(integral, {{%.*}} : !cir.vector), !cir.vector // CIR: [[SHIFT_AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, // CIR-SAME: #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i, #cir.int<3> : !s16i]> : !cir.vector - // CIR: {{%.*}} = cir.shift(left, [[SHIFT_TGT]] : !cir.vector, [[SHIFT_AMT]] : !cir.vector) -> !cir.vector - + // CIR: {{%.*}} = cir.shift(left, [[SHIFT_TGT]] : !cir.vector, [[SHIFT_AMT]] : !cir.vector) -> !cir.vector + // LLVM: {{.*}}@test_vshll_n_s8(<8 x i8>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = sext <8 x i8> [[A]] to <8 x i16> // LLVM: [[VSHLL_N:%.*]] = shl <8 x i16> [[TMP0]], @@ -7183,9 +7183,9 @@ int32x4_t test_vshll_n_s16(int16x4_t a) { // CIR-LABEL: vshll_n_s16 // CIR: [[SHIFT_TGT:%.*]] = cir.cast(integral, {{%.*}} : !cir.vector), !cir.vector - // CIR: [[SHIFT_AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<9> : !s32i, #cir.int<9> : !s32i, #cir.int<9> : + // CIR: [[SHIFT_AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<9> : !s32i, #cir.int<9> : !s32i, #cir.int<9> : // CIR-SAME: !s32i, #cir.int<9> : !s32i]> : !cir.vector - // CIR: {{%.*}} = cir.shift(left, [[SHIFT_TGT]] : !cir.vector, [[SHIFT_AMT]] : !cir.vector) -> !cir.vector + // CIR: {{%.*}} = cir.shift(left, [[SHIFT_TGT]] : !cir.vector, [[SHIFT_AMT]] : !cir.vector) -> !cir.vector // LLVM: {{.*}}@test_vshll_n_s16(<4 x i16>{{.*}}[[A:%.*]]) // LLVM: [[TMP0:%.*]] = bitcast <4 x i16> [[A]] to <8 x i8> @@ -7230,7 +7230,7 @@ uint32x4_t test_vshll_n_u16(uint16x4_t a) { // CIR-LABEL: vshll_n_u16 // CIR: [[SHIFT_TGT:%.*]] = cir.cast(integral, {{%.*}} : !cir.vector), !cir.vector - // CIR: [[SHIFT_AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<9> : !u32i, #cir.int<9> : !u32i, + // CIR: [[SHIFT_AMT:%.*]] = cir.const #cir.const_vector<[#cir.int<9> : !u32i, #cir.int<9> : !u32i, // CIR-SAME: #cir.int<9> : !u32i, #cir.int<9> : !u32i]> : !cir.vector // LLVM: {{.*}}@test_vshll_n_u16(<4 x i16>{{.*}}[[A:%.*]]) @@ -8837,7 +8837,7 @@ int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) { return vmull_s8(a, b); // CIR-LABEL: vmull_s8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_s8(<8 x i8>{{.*}}[[A:%.*]], <8 x i8>{{.*}}[[B:%.*]]) @@ -8849,7 +8849,7 @@ int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) { return vmull_s16(a, b); // CIR-LABEL: vmull_s16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_s16(<4 x i16>{{.*}}[[A:%.*]], <4 x i16>{{.*}}[[B:%.*]]) @@ -8863,7 +8863,7 @@ int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) { return vmull_s32(a, b); // CIR-LABEL: vmull_s32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.smull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_s32(<2 x i32>{{.*}}[[A:%.*]], <2 x i32>{{.*}}[[B:%.*]]) @@ -8877,7 +8877,7 @@ uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) { return vmull_u8(a, b); // CIR-LABEL: vmull_u8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_u8(<8 x i8>{{.*}}[[A:%.*]], <8 x i8>{{.*}}[[B:%.*]]) @@ -8889,7 +8889,7 @@ uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) { return vmull_u16(a, b); // CIR-LABEL: vmull_u16 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_u16(<4 x i16>{{.*}}[[A:%.*]], <4 x i16>{{.*}}[[B:%.*]]) @@ -8903,7 +8903,7 @@ uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) { return vmull_u32(a, b); // CIR-LABEL: vmull_u32 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.umull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_u32(<2 x i32>{{.*}}[[A:%.*]], <2 x i32>{{.*}}[[B:%.*]]) @@ -9367,7 +9367,7 @@ poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) { return vmull_p8(a, b); // CIR-LABEL: vmull_p8 - // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.pmull" {{%.*}}, {{%.*}} : + // CIR: {{%.*}} = cir.llvm.intrinsic "aarch64.neon.pmull" {{%.*}}, {{%.*}} : // CIR-SAME: (!cir.vector, !cir.vector) -> !cir.vector // LLVM: {{.*}}test_vmull_p8(<8 x i8>{{.*}}[[A:%.*]], <8 x i8>{{.*}}[[B:%.*]]) @@ -18440,8 +18440,8 @@ uint8x8_t test_vmovn_u16(uint16x8_t a) { return vmovn_u16(a); // CIR-LABEL: vmovn_u16 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_u16(<8 x i16>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <8 x i16> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <8 x i16> [[A]] to <8 x i8> @@ -18452,8 +18452,8 @@ uint16x4_t test_vmovn_u32(uint32x4_t a) { return vmovn_u32(a); // CIR-LABEL: vmovn_u32 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_u32(<4 x i32>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <4 x i32> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <4 x i32> [[A]] to <4 x i16> @@ -18464,8 +18464,8 @@ uint32x2_t test_vmovn_u64(uint64x2_t a) { return vmovn_u64(a); // CIR-LABEL: vmovn_u64 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_u64(<2 x i64>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <2 x i64> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <2 x i64> [[A]] to <2 x i32> @@ -18476,8 +18476,8 @@ int8x8_t test_vmovn_s16(int16x8_t a) { return vmovn_s16(a); // CIR-LABEL: vmovn_s16 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_s16(<8 x i16>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <8 x i16> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <8 x i16> [[A]] to <8 x i8> @@ -18488,8 +18488,8 @@ int16x4_t test_vmovn_s32(int32x4_t a) { return vmovn_s32(a); // CIR-LABEL: vmovn_s32 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_s32(<4 x i32>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <4 x i32> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <4 x i32> [[A]] to <4 x i16> @@ -18500,8 +18500,8 @@ int32x2_t test_vmovn_s64(int64x2_t a) { return vmovn_s64(a); // CIR-LABEL: vmovn_s64 // CIR: [[ARG:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.vector), !cir.vector - // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector - + // CIR: {{%.*}} = cir.cast(integral, [[ARG]] : !cir.vector), !cir.vector + // LLVM: {{.*}}@test_vmovn_s64(<2 x i64>{{.*}}[[A:%.*]]) // LLVM: [[VMOVN_1:%.*]] = bitcast <2 x i64> [[A]] to <16 x i8> // LLVM: [[VMOVN_I:%.*]] = trunc <2 x i64> [[A]] to <2 x i32>