@@ -861,3 +861,50 @@ uint32x2_t test_vqmovn_u64(uint64x2_t a) {
861861 // LLVM: [[VQMOVN_V1_I:%.*]] = call <2 x i32> @llvm.aarch64.neon.uqxtn.v2i32(<2 x i64> [[A]])
862862 // LLVM: ret <2 x i32> [[VQMOVN_V1_I]]
863863}
864+ float32x2_t test_vcvt_f32_s32 (int32x2_t a ) {
865+ return vcvt_f32_s32 (a );
866+
867+ // CIR-LABEL: vcvt_f32_s32
868+ // {{%.*}} = cir.cast(int_to_float, {{%.*}} : !cir.vector<!s32i x 2>), !cir.vector<!cir.float x 2>
869+
870+ // LLVM: {{.*}}test_vcvt_f32_s32(<2 x i32>{{.*}}[[a:%.*]])
871+ // LLVM: [[TMP0:%.*]] = bitcast <2 x i32> [[a]] to <8 x i8>
872+ // LLVM: [[VCVT_I:%.*]] = sitofp <2 x i32> [[a]] to <2 x float>
873+ // LLVM: ret <2 x float> [[VCVT_I]]
874+ }
875+
876+ float32x2_t test_vcvt_f32_u32 (uint32x2_t a ) {
877+ return vcvt_f32_u32 (a );
878+
879+ // CIR-LABEL: vcvt_f32_u32
880+ // {{%.*}} = cir.cast(int_to_float, {{%.*}} : !cir.vector<!u32i x 2>), !cir.vector<!cir.float x 2>
881+
882+ // LLVM: {{.*}}test_vcvt_f32_u32(<2 x i32>{{.*}}[[a:%.*]])
883+ // LLVM: [[TMP0:%.*]] = bitcast <2 x i32> [[a]] to <8 x i8>
884+ // LLVM: [[VCVT_I:%.*]] = uitofp <2 x i32> [[a]] to <2 x float>
885+ // LLVM: ret <2 x float> [[VCVT_I]]
886+ }
887+
888+ float32x4_t test_vcvtq_f32_s32 (int32x4_t a ) {
889+ return vcvtq_f32_s32 (a );
890+
891+ // CIR-LABEL: vcvtq_f32_s32
892+ // {{%.*}} = cir.cast(int_to_float, {{%.*}} : !cir.vector<!s32i x 4>), !cir.vector<!cir.float x 4>
893+
894+ // LLVM: {{.*}}test_vcvtq_f32_s32(<4 x i32>{{.*}}[[a:%.*]])
895+ // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> [[a]] to <16 x i8>
896+ // LLVM: [[VCVT_I:%.*]] = sitofp <4 x i32> [[a]] to <4 x float>
897+ // LLVM: ret <4 x float> [[VCVT_I]]
898+ }
899+
900+ float32x4_t test_vcvtq_f32_u32 (uint32x4_t a ) {
901+ return vcvtq_f32_u32 (a );
902+
903+ // CIR-LABEL: vcvtq_f32_u32
904+ // {{%.*}} = cir.cast(int_to_float, {{%.*}} : !cir.vector<!u32i x 4>), !cir.vector<!cir.float x 4>
905+
906+ // LLVM: {{.*}}test_vcvtq_f32_u32(<4 x i32>{{.*}}[[a:%.*]])
907+ // LLVM: [[TMP0:%.*]] = bitcast <4 x i32> [[a]] to <16 x i8>
908+ // LLVM: [[VCVT_I:%.*]] = uitofp <4 x i32> [[a]] to <4 x float>
909+ // LLVM: ret <4 x float> [[VCVT_I]]
910+ }
0 commit comments