brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 8006263 Raw
121 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx | FileCheck %s3 4define <8 x i32> @foo(<8 x i32> %arg1, i32 %n) #0 {5; CHECK-LABEL: foo:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi8; CHECK-NEXT:    vmovups %ymm0, -{{[0-9]+}}(%rsp)9; CHECK-NEXT:    andl $7, %edi10; CHECK-NEXT:    movl $42, -40(%rsp,%rdi,4)11; CHECK-NEXT:    vmovups -{{[0-9]+}}(%rsp), %ymm012; CHECK-NEXT:    retq13entry:14  %a = insertelement <8 x i32> %arg1, i32 42, i32 %n15  ret <8 x i32> %a16}17 18define <8 x i32> @foo2(<8 x i32> %arg1, i32 %n) alignstack(8) #0 {19; CHECK-LABEL: foo2:20; CHECK:       # %bb.0: # %entry21; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi22; CHECK-NEXT:    vmovups %ymm0, -{{[0-9]+}}(%rsp)23; CHECK-NEXT:    andl $7, %edi24; CHECK-NEXT:    movl $42, -32(%rsp,%rdi,4)25; CHECK-NEXT:    vmovups -{{[0-9]+}}(%rsp), %ymm026; CHECK-NEXT:    retq27entry:28  %a = insertelement <8 x i32> %arg1, i32 42, i32 %n29  ret <8 x i32> %a30}31 32define <8 x i32> @foo3(<8 x i32> %arg1, i32 %n) alignstack(16) #0 {33; CHECK-LABEL: foo3:34; CHECK:       # %bb.0: # %entry35; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi36; CHECK-NEXT:    vmovups %ymm0, -{{[0-9]+}}(%rsp)37; CHECK-NEXT:    andl $7, %edi38; CHECK-NEXT:    movl $42, -40(%rsp,%rdi,4)39; CHECK-NEXT:    vmovups -{{[0-9]+}}(%rsp), %ymm040; CHECK-NEXT:    retq41entry:42  %a = insertelement <8 x i32> %arg1, i32 42, i32 %n43  ret <8 x i32> %a44}45 46define <8 x i32> @foo4(<8 x i32> %arg1, i32 %n) alignstack(64) #0 {47; CHECK-LABEL: foo4:48; CHECK:       # %bb.0: # %entry49; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi50; CHECK-NEXT:    vmovaps %ymm0, -{{[0-9]+}}(%rsp)51; CHECK-NEXT:    andl $7, %edi52; CHECK-NEXT:    movl $42, -56(%rsp,%rdi,4)53; CHECK-NEXT:    vmovaps -{{[0-9]+}}(%rsp), %ymm054; CHECK-NEXT:    retq55entry:56  %a = insertelement <8 x i32> %arg1, i32 42, i32 %n57  ret <8 x i32> %a58}59 60define <8 x i32> @foo5(<8 x i32> %arg1, i32 %n) alignstack(256) #0 {61; CHECK-LABEL: foo5:62; CHECK:       # %bb.0: # %entry63; CHECK-NEXT:    subq $120, %rsp64; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi65; CHECK-NEXT:    vmovaps %ymm0, {{[0-9]+}}(%rsp)66; CHECK-NEXT:    andl $7, %edi67; CHECK-NEXT:    movl $42, 64(%rsp,%rdi,4)68; CHECK-NEXT:    vmovaps {{[0-9]+}}(%rsp), %ymm069; CHECK-NEXT:    addq $120, %rsp70; CHECK-NEXT:    retq71entry:72  %a = insertelement <8 x i32> %arg1, i32 42, i32 %n73  ret <8 x i32> %a74}75 76define <8 x i16> @foo6(<8 x i16> %arg1, i32 %n) #0 {77; CHECK-LABEL: foo6:78; CHECK:       # %bb.0: # %entry79; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi80; CHECK-NEXT:    vmovaps %xmm0, -{{[0-9]+}}(%rsp)81; CHECK-NEXT:    andl $7, %edi82; CHECK-NEXT:    movw $42, -24(%rsp,%rdi,2)83; CHECK-NEXT:    vmovaps -{{[0-9]+}}(%rsp), %xmm084; CHECK-NEXT:    retq85entry:86  %a = insertelement <8 x i16> %arg1, i16 42, i32 %n87  ret <8 x i16> %a88}89 90define <8 x i8> @foo7(<8 x i8> %arg1, i32 %n) #0 {91; CHECK-LABEL: foo7:92; CHECK:       # %bb.0: # %entry93; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi94; CHECK-NEXT:    vmovaps %xmm0, -{{[0-9]+}}(%rsp)95; CHECK-NEXT:    andl $15, %edi96; CHECK-NEXT:    movb $42, -24(%rsp,%rdi)97; CHECK-NEXT:    vmovaps -{{[0-9]+}}(%rsp), %xmm098; CHECK-NEXT:    retq99entry:100  %a = insertelement <8 x i8> %arg1, i8 42, i32 %n101  ret <8 x i8> %a102}103 104define <8 x i64> @foo8(<8 x i64> %arg1, i32 %n) #0 {105; CHECK-LABEL: foo8:106; CHECK:       # %bb.0: # %entry107; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi108; CHECK-NEXT:    vmovups %ymm1, -{{[0-9]+}}(%rsp)109; CHECK-NEXT:    vmovups %ymm0, -{{[0-9]+}}(%rsp)110; CHECK-NEXT:    andl $7, %edi111; CHECK-NEXT:    movq $42, -72(%rsp,%rdi,8)112; CHECK-NEXT:    vmovups -{{[0-9]+}}(%rsp), %ymm0113; CHECK-NEXT:    vmovups -{{[0-9]+}}(%rsp), %ymm1114; CHECK-NEXT:    retq115entry:116  %a = insertelement <8 x i64> %arg1, i64 42, i32 %n117  ret <8 x i64> %a118}119 120attributes #0 = { "no-realign-stack" nounwind }121