; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -mtriple=x86_64-unknown-unknown -mattr=+sse2 < %s | FileCheck %s --check-prefix=SSE
; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s --check-prefix=AVX --check-prefix=AVXONLY
; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -mtriple=x86_64-unknown-unknown -mattr=+avx512f < %s | FileCheck %s --check-prefix=AVX --check-prefix=AVX512 --check-prefix=KNL
; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512bw,+avx512vl < %s | FileCheck %s --check-prefix=AVX --check-prefix=AVX512 --check-prefix=SKX

; Verify that fast-isel knows how to select aligned/unaligned vector loads.
; Also verify that the selected load instruction is in the correct domain.

define <16 x i8> @test_v16i8(<16 x i8>* %V) {
; SSE-LABEL: test_v16i8:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i8:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v16i8:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v16i8:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <16 x i8>, <16 x i8>* %V, align 16
  ret <16 x i8> %0
}

define <8 x i16> @test_v8i16(<8 x i16>* %V) {
; SSE-LABEL: test_v8i16:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i16:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v8i16:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v8i16:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <8 x i16>, <8 x i16>* %V, align 16
  ret <8 x i16> %0
}

define <4 x i32> @test_v4i32(<4 x i32>* %V) {
; SSE-LABEL: test_v4i32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v4i32:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v4i32:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v4i32:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <4 x i32>, <4 x i32>* %V, align 16
  ret <4 x i32> %0
}

define <2 x i64> @test_v2i64(<2 x i64>* %V) {
; SSE-LABEL: test_v2i64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v2i64:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v2i64:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v2i64:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <2 x i64>, <2 x i64>* %V, align 16
  ret <2 x i64> %0
}

define <16 x i8> @test_v16i8_unaligned(<16 x i8>* %V) {
; SSE-LABEL: test_v16i8_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqu (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i8_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v16i8_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v16i8_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <16 x i8>, <16 x i8>* %V, align 4
  ret <16 x i8> %0
}

define <8 x i16> @test_v8i16_unaligned(<8 x i16>* %V) {
; SSE-LABEL: test_v8i16_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqu (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i16_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v8i16_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v8i16_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <8 x i16>, <8 x i16>* %V, align 4
  ret <8 x i16> %0
}

define <4 x i32> @test_v4i32_unaligned(<4 x i32>* %V) {
; SSE-LABEL: test_v4i32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqu (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v4i32_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v4i32_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v4i32_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <4 x i32>, <4 x i32>* %V, align 4
  ret <4 x i32> %0
}

define <2 x i64> @test_v2i64_unaligned(<2 x i64>* %V) {
; SSE-LABEL: test_v2i64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqu (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v2i64_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v2i64_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v2i64_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <2 x i64>, <2 x i64>* %V, align 4
  ret <2 x i64> %0
}

define <4 x float> @test_v4f32(<4 x float>* %V) {
; SSE-LABEL: test_v4f32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v4f32:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovaps (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <4 x float>, <4 x float>* %V, align 16
  ret <4 x float> %0
}

define <2 x double> @test_v2f64(<2 x double>* %V) {
; SSE-LABEL: test_v2f64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movapd (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v2f64:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovapd (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <2 x double>, <2 x double>* %V, align 16
  ret <2 x double> %0
}

define <4 x float> @test_v4f32_unaligned(<4 x float>* %V) {
; SSE-LABEL: test_v4f32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v4f32_unaligned:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovups (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <4 x float>, <4 x float>* %V, align 4
  ret <4 x float> %0
}

define <2 x double> @test_v2f64_unaligned(<2 x double>* %V) {
; SSE-LABEL: test_v2f64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movupd (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v2f64_unaligned:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovupd (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <2 x double>, <2 x double>* %V, align 4
  ret <2 x double> %0
}

define <16 x i8> @test_v16i8_abi_alignment(<16 x i8>* %V) {
; SSE-LABEL: test_v16i8_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i8_abi_alignment:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v16i8_abi_alignment:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v16i8_abi_alignment:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <16 x i8>, <16 x i8>* %V
  ret <16 x i8> %0
}

define <8 x i16> @test_v8i16_abi_alignment(<8 x i16>* %V) {
; SSE-LABEL: test_v8i16_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i16_abi_alignment:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v8i16_abi_alignment:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v8i16_abi_alignment:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <8 x i16>, <8 x i16>* %V
  ret <8 x i16> %0
}

define <4 x i32> @test_v4i32_abi_alignment(<4 x i32>* %V) {
; SSE-LABEL: test_v4i32_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v4i32_abi_alignment:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v4i32_abi_alignment:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v4i32_abi_alignment:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <4 x i32>, <4 x i32>* %V
  ret <4 x i32> %0
}

define <2 x i64> @test_v2i64_abi_alignment(<2 x i64>* %V) {
; SSE-LABEL: test_v2i64_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movdqa (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v2i64_abi_alignment:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %xmm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v2i64_abi_alignment:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %xmm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v2i64_abi_alignment:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %xmm0
; SKX-NEXT:    retq
entry:
  %0 = load <2 x i64>, <2 x i64>* %V
  ret <2 x i64> %0
}

define <4 x float> @test_v4f32_abi_alignment(<4 x float>* %V) {
; SSE-LABEL: test_v4f32_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v4f32_abi_alignment:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovaps (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <4 x float>, <4 x float>* %V
  ret <4 x float> %0
}

define <2 x double> @test_v2f64_abi_alignment(<2 x double>* %V) {
; SSE-LABEL: test_v2f64_abi_alignment:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movapd (%rdi), %xmm0
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v2f64_abi_alignment:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovapd (%rdi), %xmm0
; AVX-NEXT:    retq
entry:
  %0 = load <2 x double>, <2 x double>* %V
  ret <2 x double> %0
}

define <32 x i8> @test_v32i8(<32 x i8>* %V) {
; SSE-LABEL: test_v32i8:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v32i8:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v32i8:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v32i8:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <32 x i8>, <32 x i8>* %V, align 32
  ret <32 x i8> %0
}

define <16 x i16> @test_v16i16(<16 x i16>* %V) {
; SSE-LABEL: test_v16i16:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i16:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v16i16:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v16i16:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <16 x i16>, <16 x i16>* %V, align 32
  ret <16 x i16> %0
}

define <8 x i32> @test_v8i32(<8 x i32>* %V) {
; SSE-LABEL: test_v8i32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i32:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v8i32:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v8i32:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <8 x i32>, <8 x i32>* %V, align 32
  ret <8 x i32> %0
}

define <4 x i64> @test_v4i64(<4 x i64>* %V) {
; SSE-LABEL: test_v4i64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v4i64:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqa (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v4i64:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqa (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v4i64:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqa64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <4 x i64>, <4 x i64>* %V, align 32
  ret <4 x i64> %0
}

define <32 x i8> @test_v32i8_unaligned(<32 x i8>* %V) {
; SSE-LABEL: test_v32i8_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v32i8_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v32i8_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v32i8_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <32 x i8>, <32 x i8>* %V, align 4
  ret <32 x i8> %0
}

define <16 x i16> @test_v16i16_unaligned(<16 x i16>* %V) {
; SSE-LABEL: test_v16i16_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i16_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v16i16_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v16i16_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <16 x i16>, <16 x i16>* %V, align 4
  ret <16 x i16> %0
}

define <8 x i32> @test_v8i32_unaligned(<8 x i32>* %V) {
; SSE-LABEL: test_v8i32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i32_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v8i32_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v8i32_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <8 x i32>, <8 x i32>* %V, align 4
  ret <8 x i32> %0
}

define <4 x i64> @test_v4i64_unaligned(<4 x i64>* %V) {
; SSE-LABEL: test_v4i64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v4i64_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovdqu (%rdi), %ymm0
; AVXONLY-NEXT:    retq
;
; KNL-LABEL: test_v4i64_unaligned:
; KNL:       # %bb.0: # %entry
; KNL-NEXT:    vmovdqu (%rdi), %ymm0
; KNL-NEXT:    retq
;
; SKX-LABEL: test_v4i64_unaligned:
; SKX:       # %bb.0: # %entry
; SKX-NEXT:    vmovdqu64 (%rdi), %ymm0
; SKX-NEXT:    retq
entry:
  %0 = load <4 x i64>, <4 x i64>* %V, align 4
  ret <4 x i64> %0
}

define <8 x float> @test_v8f32(<8 x float>* %V) {
; SSE-LABEL: test_v8f32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v8f32:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovaps (%rdi), %ymm0
; AVX-NEXT:    retq
entry:
  %0 = load <8 x float>, <8 x float>* %V, align 32
  ret <8 x float> %0
}

define <4 x double> @test_v4f64(<4 x double>* %V) {
; SSE-LABEL: test_v4f64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movapd (%rdi), %xmm0
; SSE-NEXT:    movapd 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v4f64:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovapd (%rdi), %ymm0
; AVX-NEXT:    retq
entry:
  %0 = load <4 x double>, <4 x double>* %V, align 32
  ret <4 x double> %0
}

define <8 x float> @test_v8f32_unaligned(<8 x float>* %V) {
; SSE-LABEL: test_v8f32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v8f32_unaligned:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovups (%rdi), %ymm0
; AVX-NEXT:    retq
entry:
  %0 = load <8 x float>, <8 x float>* %V, align 4
  ret <8 x float> %0
}

define <4 x double> @test_v4f64_unaligned(<4 x double>* %V) {
; SSE-LABEL: test_v4f64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movupd (%rdi), %xmm0
; SSE-NEXT:    movupd 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v4f64_unaligned:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovupd (%rdi), %ymm0
; AVX-NEXT:    retq
entry:
  %0 = load <4 x double>, <4 x double>* %V, align 4
  ret <4 x double> %0
}

define <64 x i8> @test_v64i8(<64 x i8>* %V) {
; SSE-LABEL: test_v64i8:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    movaps 32(%rdi), %xmm2
; SSE-NEXT:    movaps 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v64i8:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovaps (%rdi), %ymm0
; AVXONLY-NEXT:    vmovaps 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v64i8:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <64 x i8>, <64 x i8>* %V, align 64
  ret <64 x i8> %0
}

define <32 x i16> @test_v32i16(<32 x i16>* %V) {
; SSE-LABEL: test_v32i16:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    movaps 32(%rdi), %xmm2
; SSE-NEXT:    movaps 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v32i16:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovaps (%rdi), %ymm0
; AVXONLY-NEXT:    vmovaps 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v32i16:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <32 x i16>, <32 x i16>* %V, align 64
  ret <32 x i16> %0
}

define <16 x i32> @test_v16i32(<16 x i32>* %V) {
; SSE-LABEL: test_v16i32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    movaps 32(%rdi), %xmm2
; SSE-NEXT:    movaps 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i32:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovaps (%rdi), %ymm0
; AVXONLY-NEXT:    vmovaps 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v16i32:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <16 x i32>, <16 x i32>* %V, align 64
  ret <16 x i32> %0
}

define <8 x i64> @test_v8i64(<8 x i64>* %V) {
; SSE-LABEL: test_v8i64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    movaps 32(%rdi), %xmm2
; SSE-NEXT:    movaps 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i64:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovaps (%rdi), %ymm0
; AVXONLY-NEXT:    vmovaps 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v8i64:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <8 x i64>, <8 x i64>* %V, align 64
  ret <8 x i64> %0
}

define <64 x i8> @test_v64i8_unaligned(<64 x i8>* %V) {
; SSE-LABEL: test_v64i8_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    movups 32(%rdi), %xmm2
; SSE-NEXT:    movups 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v64i8_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovups (%rdi), %ymm0
; AVXONLY-NEXT:    vmovups 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v64i8_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqu64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <64 x i8>, <64 x i8>* %V, align 4
  ret <64 x i8> %0
}

define <32 x i16> @test_v32i16_unaligned(<32 x i16>* %V) {
; SSE-LABEL: test_v32i16_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    movups 32(%rdi), %xmm2
; SSE-NEXT:    movups 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v32i16_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovups (%rdi), %ymm0
; AVXONLY-NEXT:    vmovups 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v32i16_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqu64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <32 x i16>, <32 x i16>* %V, align 4
  ret <32 x i16> %0
}

define <16 x i32> @test_v16i32_unaligned(<16 x i32>* %V) {
; SSE-LABEL: test_v16i32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    movups 32(%rdi), %xmm2
; SSE-NEXT:    movups 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16i32_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovups (%rdi), %ymm0
; AVXONLY-NEXT:    vmovups 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v16i32_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqu64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <16 x i32>, <16 x i32>* %V, align 4
  ret <16 x i32> %0
}

define <8 x i64> @test_v8i64_unaligned(<8 x i64>* %V) {
; SSE-LABEL: test_v8i64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    movups 32(%rdi), %xmm2
; SSE-NEXT:    movups 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8i64_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovups (%rdi), %ymm0
; AVXONLY-NEXT:    vmovups 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v8i64_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovdqu64 (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <8 x i64>, <8 x i64>* %V, align 4
  ret <8 x i64> %0
}

define <8 x float> @test_v16f32(<8 x float>* %V) {
; SSE-LABEL: test_v16f32:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movaps (%rdi), %xmm0
; SSE-NEXT:    movaps 16(%rdi), %xmm1
; SSE-NEXT:    retq
;
; AVX-LABEL: test_v16f32:
; AVX:       # %bb.0: # %entry
; AVX-NEXT:    vmovaps (%rdi), %ymm0
; AVX-NEXT:    retq
entry:
  %0 = load <8 x float>, <8 x float>* %V, align 64
  ret <8 x float> %0
}

define <8 x double> @test_v8f64(<8 x double>* %V) {
; SSE-LABEL: test_v8f64:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movapd (%rdi), %xmm0
; SSE-NEXT:    movapd 16(%rdi), %xmm1
; SSE-NEXT:    movapd 32(%rdi), %xmm2
; SSE-NEXT:    movapd 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8f64:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovapd (%rdi), %ymm0
; AVXONLY-NEXT:    vmovapd 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v8f64:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovapd (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <8 x double>, <8 x double>* %V, align 64
  ret <8 x double> %0
}

define <16 x float> @test_v16f32_unaligned(<16 x float>* %V) {
; SSE-LABEL: test_v16f32_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movups (%rdi), %xmm0
; SSE-NEXT:    movups 16(%rdi), %xmm1
; SSE-NEXT:    movups 32(%rdi), %xmm2
; SSE-NEXT:    movups 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v16f32_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovups (%rdi), %ymm0
; AVXONLY-NEXT:    vmovups 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v16f32_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovups (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <16 x float>, <16 x float>* %V, align 4
  ret <16 x float> %0
}

define <8 x double> @test_v8f64_unaligned(<8 x double>* %V) {
; SSE-LABEL: test_v8f64_unaligned:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movupd (%rdi), %xmm0
; SSE-NEXT:    movupd 16(%rdi), %xmm1
; SSE-NEXT:    movupd 32(%rdi), %xmm2
; SSE-NEXT:    movupd 48(%rdi), %xmm3
; SSE-NEXT:    retq
;
; AVXONLY-LABEL: test_v8f64_unaligned:
; AVXONLY:       # %bb.0: # %entry
; AVXONLY-NEXT:    vmovupd (%rdi), %ymm0
; AVXONLY-NEXT:    vmovupd 32(%rdi), %ymm1
; AVXONLY-NEXT:    retq
;
; AVX512-LABEL: test_v8f64_unaligned:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vmovupd (%rdi), %zmm0
; AVX512-NEXT:    retq
entry:
  %0 = load <8 x double>, <8 x double>* %V, align 4
  ret <8 x double> %0
}

