; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+avx | FileCheck %s ; TODO: We If we stored ymm0 before ymm1, then we could execute 2nd load and 1st store in ; parallel. define void @test_01(i8* %src, i8* %dest) { ; CHECK-LABEL: test_01: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: vmovups (%rdi), %ymm0 ; CHECK-NEXT: vmovups 32(%rdi), %ymm1 ; CHECK-NEXT: vmovups %ymm1, 32(%rsi) ; CHECK-NEXT: vmovups %ymm0, (%rsi) ; CHECK-NEXT: vzeroupper ; CHECK-NEXT: retq entry: %read = bitcast i8* %src to <64 x i8>* %value = load <64 x i8>, <64 x i8>* %read, align 1 %write = bitcast i8* %dest to <64 x i8>* store <64 x i8> %value, <64 x i8>* %write, align 1 ret void }