brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · eee1fd6 Raw
96 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- -mattr=-bmi | FileCheck %s3 4; Use h-register extract and zero-extend.5 6define double @foo8(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {7; CHECK-LABEL: foo8:8; CHECK:       # %bb.0:9; CHECK-NEXT:    movzbl %dh, %ecx10; CHECK-NEXT:    fldl (%eax,%ecx,8)11; CHECK-NEXT:    retl12  %t0 = lshr i32 %x, 813  %t1 = and i32 %t0, 25514  %t2 = getelementptr double, ptr %p, i32 %t115  %t3 = load double, ptr %t2, align 816  ret double %t317}18 19define float @foo4(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {20; CHECK-LABEL: foo4:21; CHECK:       # %bb.0:22; CHECK-NEXT:    movzbl %dh, %ecx23; CHECK-NEXT:    flds (%eax,%ecx,4)24; CHECK-NEXT:    retl25  %t0 = lshr i32 %x, 826  %t1 = and i32 %t0, 25527  %t2 = getelementptr float, ptr %p, i32 %t128  %t3 = load float, ptr %t2, align 829  ret float %t330}31 32define i16 @foo2(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {33; CHECK-LABEL: foo2:34; CHECK:       # %bb.0:35; CHECK-NEXT:    movzbl %dh, %ecx36; CHECK-NEXT:    movzwl (%eax,%ecx,2), %eax37; CHECK-NEXT:    retl38  %t0 = lshr i32 %x, 839  %t1 = and i32 %t0, 25540  %t2 = getelementptr i16, ptr %p, i32 %t141  %t3 = load i16, ptr %t2, align 842  ret i16 %t343}44 45define i8 @foo1(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {46; CHECK-LABEL: foo1:47; CHECK:       # %bb.0:48; CHECK-NEXT:    movzbl %dh, %ecx49; CHECK-NEXT:    movzbl (%eax,%ecx), %eax50; CHECK-NEXT:    retl51  %t0 = lshr i32 %x, 852  %t1 = and i32 %t0, 25553  %t2 = getelementptr i8, ptr %p, i32 %t154  %t3 = load i8, ptr %t2, align 855  ret i8 %t356}57 58define i8 @bar8(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {59; CHECK-LABEL: bar8:60; CHECK:       # %bb.0:61; CHECK-NEXT:    movzbl %dh, %ecx62; CHECK-NEXT:    movzbl (%eax,%ecx,8), %eax63; CHECK-NEXT:    retl64  %t0 = lshr i32 %x, 565  %t1 = and i32 %t0, 204066  %t2 = getelementptr i8, ptr %p, i32 %t167  %t3 = load i8, ptr %t2, align 868  ret i8 %t369}70 71define i8 @bar4(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {72; CHECK-LABEL: bar4:73; CHECK:       # %bb.0:74; CHECK-NEXT:    movzbl %dh, %ecx75; CHECK-NEXT:    movzbl (%eax,%ecx,4), %eax76; CHECK-NEXT:    retl77  %t0 = lshr i32 %x, 678  %t1 = and i32 %t0, 102079  %t2 = getelementptr i8, ptr %p, i32 %t180  %t3 = load i8, ptr %t2, align 881  ret i8 %t382}83 84define i8 @bar2(ptr nocapture inreg %p, i32 inreg %x) nounwind readonly {85; CHECK-LABEL: bar2:86; CHECK:       # %bb.0:87; CHECK-NEXT:    movzbl %dh, %ecx88; CHECK-NEXT:    movzbl (%eax,%ecx,2), %eax89; CHECK-NEXT:    retl90  %t0 = lshr i32 %x, 791  %t1 = and i32 %t0, 51092  %t2 = getelementptr i8, ptr %p, i32 %t193  %t3 = load i8, ptr %t2, align 894  ret i8 %t395}96