brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · c0cd5a8 Raw
196 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mcpu=pentium4 -O0 | FileCheck %s3 4target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128"5target triple = "i386-unknown-linux-unknown"6 7define <4 x half> @doTheTestMod(<4 x half> %0, <4 x half> %1) nounwind {8; CHECK-LABEL: doTheTestMod:9; CHECK:       # %bb.0: # %Entry10; CHECK-NEXT:    subl $140, %esp11; CHECK-NEXT:    movaps %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill12; CHECK-NEXT:    movaps %xmm0, %xmm613; CHECK-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload14; CHECK-NEXT:    movaps %xmm0, %xmm115; CHECK-NEXT:    movaps %xmm0, %xmm316; CHECK-NEXT:    psrlq $48, %xmm317; CHECK-NEXT:    movaps %xmm0, %xmm218; CHECK-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]19; CHECK-NEXT:    psrld $16, %xmm020; CHECK-NEXT:    movaps %xmm6, %xmm721; CHECK-NEXT:    movaps %xmm6, %xmm422; CHECK-NEXT:    psrlq $48, %xmm423; CHECK-NEXT:    movaps %xmm6, %xmm524; CHECK-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1,1,1]25; CHECK-NEXT:    psrld $16, %xmm626; CHECK-NEXT:    pextrw $0, %xmm7, %eax27; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax28; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)29; CHECK-NEXT:    pextrw $0, %xmm6, %eax30; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax31; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)32; CHECK-NEXT:    pextrw $0, %xmm5, %eax33; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax34; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)35; CHECK-NEXT:    pextrw $0, %xmm4, %eax36; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax37; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)38; CHECK-NEXT:    pextrw $0, %xmm3, %eax39; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax40; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)41; CHECK-NEXT:    pextrw $0, %xmm2, %eax42; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax43; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)44; CHECK-NEXT:    pextrw $0, %xmm0, %eax45; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax46; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)47; CHECK-NEXT:    pextrw $0, %xmm1, %eax48; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax49; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)50; CHECK-NEXT:    # implicit-def: $xmm051; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm052; CHECK-NEXT:    movss %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill53; CHECK-NEXT:    # implicit-def: $xmm054; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm055; CHECK-NEXT:    movss %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill56; CHECK-NEXT:    # implicit-def: $xmm057; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm058; CHECK-NEXT:    movss %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill59; CHECK-NEXT:    # implicit-def: $xmm060; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm061; CHECK-NEXT:    # implicit-def: $xmm162; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm163; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill64; CHECK-NEXT:    # implicit-def: $xmm165; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm166; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill67; CHECK-NEXT:    # implicit-def: $xmm168; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm169; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill70; CHECK-NEXT:    # implicit-def: $xmm171; CHECK-NEXT:    pinsrw $0, {{[0-9]+}}(%esp), %xmm172; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill73; CHECK-NEXT:    pextrw $0, %xmm0, %eax74; CHECK-NEXT:    movw %ax, %cx75; CHECK-NEXT:    movl %esp, %eax76; CHECK-NEXT:    movw %cx, (%eax)77; CHECK-NEXT:    calll __extendhfsf278; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload79; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero80; CHECK-NEXT:    fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill81; CHECK-NEXT:    pextrw $0, %xmm0, %eax82; CHECK-NEXT:    movw %ax, %cx83; CHECK-NEXT:    movl %esp, %eax84; CHECK-NEXT:    movw %cx, (%eax)85; CHECK-NEXT:    calll __extendhfsf286; CHECK-NEXT:    fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload87; CHECK-NEXT:    movl %esp, %eax88; CHECK-NEXT:    fxch %st(1)89; CHECK-NEXT:    fstps 4(%eax)90; CHECK-NEXT:    fstps (%eax)91; CHECK-NEXT:    calll fmodf92; CHECK-NEXT:    movl %esp, %eax93; CHECK-NEXT:    fstps (%eax)94; CHECK-NEXT:    calll __truncsfhf295; CHECK-NEXT:    movaps %xmm0, %xmm196; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload97; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero98; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill99; CHECK-NEXT:    pextrw $0, %xmm0, %eax100; CHECK-NEXT:    movw %ax, %cx101; CHECK-NEXT:    movl %esp, %eax102; CHECK-NEXT:    movw %cx, (%eax)103; CHECK-NEXT:    calll __extendhfsf2104; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload105; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero106; CHECK-NEXT:    fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill107; CHECK-NEXT:    pextrw $0, %xmm0, %eax108; CHECK-NEXT:    movw %ax, %cx109; CHECK-NEXT:    movl %esp, %eax110; CHECK-NEXT:    movw %cx, (%eax)111; CHECK-NEXT:    calll __extendhfsf2112; CHECK-NEXT:    fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload113; CHECK-NEXT:    movl %esp, %eax114; CHECK-NEXT:    fxch %st(1)115; CHECK-NEXT:    fstps 4(%eax)116; CHECK-NEXT:    fstps (%eax)117; CHECK-NEXT:    calll fmodf118; CHECK-NEXT:    movl %esp, %eax119; CHECK-NEXT:    fstps (%eax)120; CHECK-NEXT:    calll __truncsfhf2121; CHECK-NEXT:    movaps %xmm0, %xmm1122; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload123; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero124; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill125; CHECK-NEXT:    pextrw $0, %xmm0, %eax126; CHECK-NEXT:    movw %ax, %cx127; CHECK-NEXT:    movl %esp, %eax128; CHECK-NEXT:    movw %cx, (%eax)129; CHECK-NEXT:    calll __extendhfsf2130; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload131; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero132; CHECK-NEXT:    fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill133; CHECK-NEXT:    pextrw $0, %xmm0, %eax134; CHECK-NEXT:    movw %ax, %cx135; CHECK-NEXT:    movl %esp, %eax136; CHECK-NEXT:    movw %cx, (%eax)137; CHECK-NEXT:    calll __extendhfsf2138; CHECK-NEXT:    fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload139; CHECK-NEXT:    movl %esp, %eax140; CHECK-NEXT:    fxch %st(1)141; CHECK-NEXT:    fstps 4(%eax)142; CHECK-NEXT:    fstps (%eax)143; CHECK-NEXT:    calll fmodf144; CHECK-NEXT:    movl %esp, %eax145; CHECK-NEXT:    fstps (%eax)146; CHECK-NEXT:    calll __truncsfhf2147; CHECK-NEXT:    movaps %xmm0, %xmm1148; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload149; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero150; CHECK-NEXT:    movss %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill151; CHECK-NEXT:    pextrw $0, %xmm0, %eax152; CHECK-NEXT:    movw %ax, %cx153; CHECK-NEXT:    movl %esp, %eax154; CHECK-NEXT:    movw %cx, (%eax)155; CHECK-NEXT:    calll __extendhfsf2156; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload157; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero158; CHECK-NEXT:    fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill159; CHECK-NEXT:    pextrw $0, %xmm0, %eax160; CHECK-NEXT:    movw %ax, %cx161; CHECK-NEXT:    movl %esp, %eax162; CHECK-NEXT:    movw %cx, (%eax)163; CHECK-NEXT:    calll __extendhfsf2164; CHECK-NEXT:    fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload165; CHECK-NEXT:    movl %esp, %eax166; CHECK-NEXT:    fxch %st(1)167; CHECK-NEXT:    fstps 4(%eax)168; CHECK-NEXT:    fstps (%eax)169; CHECK-NEXT:    calll fmodf170; CHECK-NEXT:    movl %esp, %eax171; CHECK-NEXT:    fstps (%eax)172; CHECK-NEXT:    calll __truncsfhf2173; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm1 # 4-byte Reload174; CHECK-NEXT:    # xmm1 = mem[0],zero,zero,zero175; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm2 # 4-byte Reload176; CHECK-NEXT:    # xmm2 = mem[0],zero,zero,zero177; CHECK-NEXT:    movaps %xmm0, %xmm3178; CHECK-NEXT:    movss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 4-byte Reload179; CHECK-NEXT:    # xmm0 = mem[0],zero,zero,zero180; CHECK-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3]181; CHECK-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]182; CHECK-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]183; CHECK-NEXT:    addl $140, %esp184; CHECK-NEXT:    retl185Entry:186  %x = alloca <4 x half>, align 8187  %y = alloca <4 x half>, align 8188  store <4 x half> %0, ptr %x, align 8189  store <4 x half> %1, ptr %y, align 8190  %2 = load <4 x half>, ptr %x, align 8191  %3 = load <4 x half>, ptr %y, align 8192  %4 = frem <4 x half> %2, %3193  ret <4 x half> %4194}195 196