brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 0f13969 Raw
88 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s3 4define i32 @shl16sar15(i32 %a) #0 {5; CHECK-LABEL: shl16sar15:6; CHECK:       # %bb.0:7; CHECK-NEXT:    movswl {{[0-9]+}}(%esp), %eax8; CHECK-NEXT:    addl %eax, %eax9; CHECK-NEXT:    retl10  %1 = shl i32 %a, 1611  %2 = ashr exact i32 %1, 1512  ret i32 %213}14 15define i32 @shl16sar17(i32 %a) #0 {16; CHECK-LABEL: shl16sar17:17; CHECK:       # %bb.0:18; CHECK-NEXT:    movswl {{[0-9]+}}(%esp), %eax19; CHECK-NEXT:    sarl %eax20; CHECK-NEXT:    retl21  %1 = shl i32 %a, 1622  %2 = ashr exact i32 %1, 1723  ret i32 %224}25 26define i32 @shl24sar23(i32 %a) #0 {27; CHECK-LABEL: shl24sar23:28; CHECK:       # %bb.0:29; CHECK-NEXT:    movsbl {{[0-9]+}}(%esp), %eax30; CHECK-NEXT:    addl %eax, %eax31; CHECK-NEXT:    retl32  %1 = shl i32 %a, 2433  %2 = ashr exact i32 %1, 2334  ret i32 %235}36 37define i32 @shl24sar25(i32 %a) #0 {38; CHECK-LABEL: shl24sar25:39; CHECK:       # %bb.0:40; CHECK-NEXT:    movsbl {{[0-9]+}}(%esp), %eax41; CHECK-NEXT:    sarl %eax42; CHECK-NEXT:    retl43  %1 = shl i32 %a, 2444  %2 = ashr exact i32 %1, 2545  ret i32 %246}47 48define void @shl144sar48(ptr %p) #0 {49; CHECK-LABEL: shl144sar48:50; CHECK:       # %bb.0:51; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax52; CHECK-NEXT:    movswl (%eax), %ecx53; CHECK-NEXT:    movl %ecx, %edx54; CHECK-NEXT:    sarl $31, %edx55; CHECK-NEXT:    shldl $2, %ecx, %edx56; CHECK-NEXT:    shll $2, %ecx57; CHECK-NEXT:    movl %ecx, 12(%eax)58; CHECK-NEXT:    movl %edx, 16(%eax)59; CHECK-NEXT:    movl $0, 8(%eax)60; CHECK-NEXT:    movl $0, 4(%eax)61; CHECK-NEXT:    movl $0, (%eax)62; CHECK-NEXT:    retl63  %a = load i160, ptr %p64  %1 = shl i160 %a, 14465  %2 = ashr exact i160 %1, 4666  store i160 %2, ptr %p67  ret void68}69 70define void @shl144sar2(ptr %p) #0 {71; CHECK-LABEL: shl144sar2:72; CHECK:       # %bb.0:73; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax74; CHECK-NEXT:    movswl (%eax), %ecx75; CHECK-NEXT:    shll $14, %ecx76; CHECK-NEXT:    movl %ecx, 16(%eax)77; CHECK-NEXT:    movl $0, 8(%eax)78; CHECK-NEXT:    movl $0, 12(%eax)79; CHECK-NEXT:    movl $0, 4(%eax)80; CHECK-NEXT:    movl $0, (%eax)81; CHECK-NEXT:    retl82  %a = load i160, ptr %p83  %1 = shl i160 %a, 14484  %2 = ashr exact i160 %1, 285  store i160 %2, ptr %p86  ret void87}88