; This file tests casting / conversion operations that apply to vector types.
; bitcast operations are in vector-bitcast.ll.

; RUN: %p2i -i %s --target=x8632 --filetype=obj --disassemble --args -O2 \
; RUN:     | FileCheck %s --check-prefix=X8632 --check-prefix=CHECK
; RUN: %p2i -i %s --target=x8632 --filetype=obj --disassemble --args -Om1 \
; RUN:     | FileCheck %s --check-prefix=X8632 --check-prefix=CHECK

; RUN: %p2i -i %s --target=arm32 --filetype=obj --disassemble --args -O2 \
; RUN:     | FileCheck %s --check-prefix=ARM32 --check-prefix=CHECK
; RUN: %p2i -i %s --target=arm32 --filetype=obj --disassemble --args -Om1 \
; RUN:     | FileCheck %s --check-prefix=ARM32 --check-prefix=CHECK

; sext operations

define internal <16 x i8> @test_sext_v16i1_to_v16i8(<16 x i1> %arg) {
entry:
  %res = sext <16 x i1> %arg to <16 x i8>
  ret <16 x i8> %res

; CHECK-LABEL: test_sext_v16i1_to_v16i8
; X8632: pxor
; X8632: pcmpeqb
; X8632: psubb
; X8632: pand
; X8632: pxor
; X8632: pcmpgtb
; ARM32: vshl.s8
; ARM32-NEXT: vshr.s8
}

define internal <8 x i16> @test_sext_v8i1_to_v8i16(<8 x i1> %arg) {
entry:
  %res = sext <8 x i1> %arg to <8 x i16>
  ret <8 x i16> %res

; CHECK-LABEL: test_sext_v8i1_to_v8i16
; X8632: psllw {{.*}},0xf
; X8632: psraw {{.*}},0xf
; ARM32: vshl.s16
; ARM32-NEXT: vshr.s16
}

define internal <4 x i32> @test_sext_v4i1_to_v4i32(<4 x i1> %arg) {
entry:
  %res = sext <4 x i1> %arg to <4 x i32>
  ret <4 x i32> %res

; CHECK-LABEL: test_sext_v4i1_to_v4i32
; X8632: pslld {{.*}},0x1f
; X8632: psrad {{.*}},0x1f
; ARM32: vshl.s32
; ARM32-NEXT: vshr.s32
}

; zext operations

define internal <16 x i8> @test_zext_v16i1_to_v16i8(<16 x i1> %arg) {
entry:
  %res = zext <16 x i1> %arg to <16 x i8>
  ret <16 x i8> %res

; CHECK-LABEL: test_zext_v16i1_to_v16i8
; X8632: pxor
; X8632: pcmpeqb
; X8632: psubb
; X8632: pand
; ARM32: vmov.i8 [[S:.*]], #1
; ARM32-NEXT: vand {{.*}}, [[S]]
}

define internal <8 x i16> @test_zext_v8i1_to_v8i16(<8 x i1> %arg) {
entry:
  %res = zext <8 x i1> %arg to <8 x i16>
  ret <8 x i16> %res

; CHECK-LABEL: test_zext_v8i1_to_v8i16
; X8632: pxor
; X8632: pcmpeqw
; X8632: psubw
; X8632: pand
; ARM32: vmov.i16 [[S:.*]], #1
; ARM32-NEXT: vand {{.*}}, [[S]]
}

define internal <4 x i32> @test_zext_v4i1_to_v4i32(<4 x i1> %arg) {
entry:
  %res = zext <4 x i1> %arg to <4 x i32>
  ret <4 x i32> %res

; CHECK-LABEL: test_zext_v4i1_to_v4i32
; X8632: pxor
; X8632: pcmpeqd
; X8632: psubd
; X8632: pand
; ARM32: vmov.i32 [[S:.*]], #1
; ARM32-NEXT: vand {{.*}}, [[S]]
}

; trunc operations

define internal <16 x i1> @test_trunc_v16i8_to_v16i1(<16 x i8> %arg) {
entry:
  %res = trunc <16 x i8> %arg to <16 x i1>
  ret <16 x i1> %res

; CHECK-LABEL: test_trunc_v16i8_to_v16i1
; X8632: pxor
; X8632: pcmpeqb
; X8632: psubb
; X8632: pand
}

define internal <8 x i1> @test_trunc_v8i16_to_v8i1(<8 x i16> %arg) {
entry:
  %res = trunc <8 x i16> %arg to <8 x i1>
  ret <8 x i1> %res

; CHECK-LABEL: test_trunc_v8i16_to_v8i1
; X8632: pxor
; X8632: pcmpeqw
; X8632: psubw
; X8632: pand
}

define internal <4 x i1> @test_trunc_v4i32_to_v4i1(<4 x i32> %arg) {
entry:
  %res = trunc <4 x i32> %arg to <4 x i1>
  ret <4 x i1> %res

; CHECK-LABEL: test_trunc_v4i32_to_v4i1
; X8632: pxor
; X8632: pcmpeqd
; X8632: psubd
; X8632: pand
}

; fpto[us]i operations

define internal <4 x i32> @test_fptosi_v4f32_to_v4i32(<4 x float> %arg) {
entry:
  %res = fptosi <4 x float> %arg to <4 x i32>
  ret <4 x i32> %res

; CHECK-LABEL: test_fptosi_v4f32_to_v4i32
; X8632: cvttps2dq
; ARM32: vcvt.s32.f32
}

define internal <4 x i32> @test_fptoui_v4f32_to_v4i32(<4 x float> %arg) {
entry:
  %res = fptoui <4 x float> %arg to <4 x i32>
  ret <4 x i32> %res

; CHECK-LABEL: test_fptoui_v4f32_to_v4i32
; X8632: call {{.*}} R_{{.*}} __Sz_fptoui_4xi32_f32
; ARM32: vcvt.u32.f32
}

; [su]itofp operations

define internal <4 x float> @test_sitofp_v4i32_to_v4f32(<4 x i32> %arg) {
entry:
  %res = sitofp <4 x i32> %arg to <4 x float>
  ret <4 x float> %res

; CHECK-LABEL: test_sitofp_v4i32_to_v4f32
; X8632: cvtdq2ps
; ARM32: vcvt.f32.s32
}

define internal <4 x float> @test_uitofp_v4i32_to_v4f32(<4 x i32> %arg) {
entry:
  %res = uitofp <4 x i32> %arg to <4 x float>
  ret <4 x float> %res

; CHECK-LABEL: test_uitofp_v4i32_to_v4f32
; X8632: call {{.*}} R_{{.*}} __Sz_uitofp_4xi32_4xf32
; ARM32: vcvt.f32.u32
}
