brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 7f4a276 Raw
117 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-linux-gnu -mcpu=skx                       -global-isel -verify-machineinstrs < %s -o - | FileCheck %s --check-prefix=SKX3; RUN: llc -mtriple=x86_64-linux-gnu -mcpu=skx -regbankselect-greedy -global-isel -verify-machineinstrs < %s -o - | FileCheck %s --check-prefix=SKX4 5define <4 x i32> @test_load_v4i32_noalign(ptr %p1) {6; SKX-LABEL: test_load_v4i32_noalign:7; SKX:       # %bb.0:8; SKX-NEXT:    vmovups (%rdi), %xmm09; SKX-NEXT:    retq10  %r = load <4 x i32>, ptr %p1, align 111  ret <4 x i32> %r12}13 14define <4 x i32> @test_load_v4i32_align(ptr %p1) {15; SKX-LABEL: test_load_v4i32_align:16; SKX:       # %bb.0:17; SKX-NEXT:    vmovaps (%rdi), %xmm018; SKX-NEXT:    retq19  %r = load <4 x i32>, ptr %p1, align 1620  ret <4 x i32> %r21}22 23define <8 x i32> @test_load_v8i32_noalign(ptr %p1) {24; SKX-LABEL: test_load_v8i32_noalign:25; SKX:       # %bb.0:26; SKX-NEXT:    vmovups (%rdi), %ymm027; SKX-NEXT:    retq28  %r = load <8 x i32>, ptr %p1, align 129  ret <8 x i32> %r30}31 32define <8 x i32> @test_load_v8i32_align(ptr %p1) {33; SKX-LABEL: test_load_v8i32_align:34; SKX:       # %bb.0:35; SKX-NEXT:    vmovaps (%rdi), %ymm036; SKX-NEXT:    retq37  %r = load <8 x i32>, ptr %p1, align 3238  ret <8 x i32> %r39}40 41define <16 x i32> @test_load_v16i32_noalign(ptr %p1) {42; SKX-LABEL: test_load_v16i32_noalign:43; SKX:       # %bb.0:44; SKX-NEXT:    vmovups (%rdi), %zmm045; SKX-NEXT:    retq46  %r = load <16 x i32>, ptr %p1, align 147  ret <16 x i32> %r48}49 50define <16 x i32> @test_load_v16i32_align(ptr %p1) {51; SKX-LABEL: test_load_v16i32_align:52; SKX:       # %bb.0:53; SKX-NEXT:    vmovups (%rdi), %zmm054; SKX-NEXT:    retq55  %r = load <16 x i32>, ptr %p1, align 3256  ret <16 x i32> %r57}58 59define void @test_store_v4i32_noalign(<4 x i32> %val, ptr %p1) {60; SKX-LABEL: test_store_v4i32_noalign:61; SKX:       # %bb.0:62; SKX-NEXT:    vmovups %xmm0, (%rdi)63; SKX-NEXT:    retq64  store <4 x i32> %val, ptr %p1, align 165  ret void66}67 68define void @test_store_v4i32_align(<4 x i32> %val, ptr %p1) {69; SKX-LABEL: test_store_v4i32_align:70; SKX:       # %bb.0:71; SKX-NEXT:    vmovaps %xmm0, (%rdi)72; SKX-NEXT:    retq73  store <4 x i32> %val, ptr %p1, align 1674  ret void75}76 77define void @test_store_v8i32_noalign(<8 x i32> %val, ptr %p1) {78; SKX-LABEL: test_store_v8i32_noalign:79; SKX:       # %bb.0:80; SKX-NEXT:    vmovups %ymm0, (%rdi)81; SKX-NEXT:    vzeroupper82; SKX-NEXT:    retq83  store <8 x i32> %val, ptr %p1, align 184  ret void85}86 87define void @test_store_v8i32_align(<8 x i32> %val, ptr %p1) {88; SKX-LABEL: test_store_v8i32_align:89; SKX:       # %bb.0:90; SKX-NEXT:    vmovaps %ymm0, (%rdi)91; SKX-NEXT:    vzeroupper92; SKX-NEXT:    retq93  store <8 x i32> %val, ptr %p1, align 3294  ret void95}96 97define void @test_store_v16i32_noalign(<16 x i32> %val, ptr %p1) {98; SKX-LABEL: test_store_v16i32_noalign:99; SKX:       # %bb.0:100; SKX-NEXT:    vmovups %zmm0, (%rdi)101; SKX-NEXT:    vzeroupper102; SKX-NEXT:    retq103  store <16 x i32> %val, ptr %p1, align 1104  ret void105}106 107define void @test_store_v16i32_align(<16 x i32> %val, ptr %p1) {108; SKX-LABEL: test_store_v16i32_align:109; SKX:       # %bb.0:110; SKX-NEXT:    vmovaps %zmm0, (%rdi)111; SKX-NEXT:    vzeroupper112; SKX-NEXT:    retq113  store <16 x i32> %val, ptr %p1, align 64114  ret void115}116 117