brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 86d2a74 Raw
112 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp2; RUN: llc -mtriple=i386-linux-gnu                       -global-isel -verify-machineinstrs < %s | FileCheck %s3; RUN: llc -mtriple=i386-linux-gnu -regbankselect-greedy -global-isel -verify-machineinstrs < %s | FileCheck %s4 5;TODO merge with x86-64 tests (many operations not suppored yet)6 7define i1 @test_load_i1(ptr %p1) {8; CHECK-LABEL: test_load_i1:9; CHECK:       # %bb.0:10; CHECK-NEXT:    movl 4(%esp), %eax11; CHECK-NEXT:    movzbl (%eax), %eax12; CHECK-NEXT:    retl13  %r = load i1, ptr %p114  ret i1 %r15}16 17define i8 @test_load_i8(ptr %p1) {18; CHECK-LABEL: test_load_i8:19; CHECK:       # %bb.0:20; CHECK-NEXT:    movl 4(%esp), %eax21; CHECK-NEXT:    movzbl (%eax), %eax22; CHECK-NEXT:    retl23  %r = load i8, ptr %p124  ret i8 %r25}26 27define i16 @test_load_i16(ptr %p1) {28; CHECK-LABEL: test_load_i16:29; CHECK:       # %bb.0:30; CHECK-NEXT:    movl 4(%esp), %eax31; CHECK-NEXT:    movzwl (%eax), %eax32; CHECK-NEXT:    retl33  %r = load i16, ptr %p134  ret i16 %r35}36 37define i32 @test_load_i32(ptr %p1) {38; CHECK-LABEL: test_load_i32:39; CHECK:       # %bb.0:40; CHECK-NEXT:    movl 4(%esp), %eax41; CHECK-NEXT:    movl (%eax), %eax42; CHECK-NEXT:    retl43  %r = load i32, ptr %p144  ret i32 %r45}46 47define ptr @test_store_i1(i1 %val, ptr %p1) {48; CHECK-LABEL: test_store_i1:49; CHECK:       # %bb.0:50; CHECK-NEXT:    movzbl 4(%esp), %ecx51; CHECK-NEXT:    movl 8(%esp), %eax52; CHECK-NEXT:    andb $1, %cl53; CHECK-NEXT:    movb %cl, (%eax)54; CHECK-NEXT:    retl55  store i1 %val, ptr %p156  ret ptr %p1;57}58 59define ptr @test_store_i8(i8 %val, ptr %p1) {60; CHECK-LABEL: test_store_i8:61; CHECK:       # %bb.0:62; CHECK-NEXT:    movzbl 4(%esp), %ecx63; CHECK-NEXT:    movl 8(%esp), %eax64; CHECK-NEXT:    movb %cl, (%eax)65; CHECK-NEXT:    retl66  store i8 %val, ptr %p167  ret ptr %p1;68}69 70define ptr @test_store_i16(i16 %val, ptr %p1) {71; CHECK-LABEL: test_store_i16:72; CHECK:       # %bb.0:73; CHECK-NEXT:    movzwl 4(%esp), %ecx74; CHECK-NEXT:    movl 8(%esp), %eax75; CHECK-NEXT:    movw %cx, (%eax)76; CHECK-NEXT:    retl77  store i16 %val, ptr %p178  ret ptr %p1;79}80 81define ptr @test_store_i32(i32 %val, ptr %p1) {82; CHECK-LABEL: test_store_i32:83; CHECK:       # %bb.0:84; CHECK-NEXT:    movl 4(%esp), %ecx85; CHECK-NEXT:    movl 8(%esp), %eax86; CHECK-NEXT:    movl %ecx, (%eax)87; CHECK-NEXT:    retl88  store i32 %val, ptr %p189  ret ptr %p1;90}91 92define ptr @test_load_ptr(ptr %ptr1) {93; CHECK-LABEL: test_load_ptr:94; CHECK:       # %bb.0:95; CHECK-NEXT:    movl 4(%esp), %eax96; CHECK-NEXT:    movl (%eax), %eax97; CHECK-NEXT:    retl98  %p = load ptr, ptr %ptr199  ret ptr %p100}101 102define void @test_store_ptr(ptr %ptr1, ptr %a) {103; CHECK-LABEL: test_store_ptr:104; CHECK:       # %bb.0:105; CHECK-NEXT:    movl 4(%esp), %eax106; CHECK-NEXT:    movl 8(%esp), %ecx107; CHECK-NEXT:    movl %ecx, (%eax)108; CHECK-NEXT:    retl109  store ptr %a, ptr %ptr1110  ret void111}112