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