106 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS323 4define zeroext i8 @_16_bit_positive_offset(ptr %a) {5; MIPS32-LABEL: _16_bit_positive_offset:6; MIPS32: # %bb.0: # %entry7; MIPS32-NEXT: lbu $2, 32767($4)8; MIPS32-NEXT: jr $ra9; MIPS32-NEXT: nop10entry:11 %arrayidx = getelementptr inbounds i8, ptr %a, i32 3276712 %0 = load i8, ptr %arrayidx13 ret i8 %014}15 16define void @_16_bit_negative_offset(i8 %val, ptr %a) {17; MIPS32-LABEL: _16_bit_negative_offset:18; MIPS32: # %bb.0: # %entry19; MIPS32-NEXT: sb $4, -32768($5)20; MIPS32-NEXT: jr $ra21; MIPS32-NEXT: nop22entry:23 %arrayidx = getelementptr inbounds i8, ptr %a, i32 -3276824 store i8 %val, ptr %arrayidx25 ret void26}27 28define void @_large_positive_offset(i8 %val, ptr %a) {29; MIPS32-LABEL: _large_positive_offset:30; MIPS32: # %bb.0: # %entry31; MIPS32-NEXT: ori $1, $zero, 3276832; MIPS32-NEXT: addu $1, $5, $133; MIPS32-NEXT: sb $4, 0($1)34; MIPS32-NEXT: jr $ra35; MIPS32-NEXT: nop36entry:37 %arrayidx = getelementptr inbounds i8, ptr %a, i32 3276838 store i8 %val, ptr %arrayidx39 ret void40}41 42define signext i8 @_large_negative_offset(ptr %a) {43; MIPS32-LABEL: _large_negative_offset:44; MIPS32: # %bb.0: # %entry45; MIPS32-NEXT: lui $1, 6553546; MIPS32-NEXT: ori $1, $1, 3276747; MIPS32-NEXT: addu $1, $4, $148; MIPS32-NEXT: lb $2, 0($1)49; MIPS32-NEXT: jr $ra50; MIPS32-NEXT: nop51entry:52 %arrayidx = getelementptr inbounds i8, ptr %a, i32 -3276953 %0 = load i8, ptr %arrayidx54 ret i8 %055}56 57define float @fold_f32_load(ptr %a) {58; MIPS32-LABEL: fold_f32_load:59; MIPS32: # %bb.0: # %entry60; MIPS32-NEXT: lwc1 $f0, 40($4)61; MIPS32-NEXT: jr $ra62; MIPS32-NEXT: nop63entry:64 %arrayidx = getelementptr inbounds float, ptr %a, i32 1065 %0 = load float, ptr %arrayidx66 ret float %067}68 69define void @fold_f64_store(double %val, ptr %a) {70; MIPS32-LABEL: fold_f64_store:71; MIPS32: # %bb.0: # %entry72; MIPS32-NEXT: sdc1 $f12, -80($6)73; MIPS32-NEXT: jr $ra74; MIPS32-NEXT: nop75entry:76 %arrayidx = getelementptr inbounds double, ptr %a, i32 -1077 store double %val, ptr %arrayidx78 ret void79}80 81define i16 @fold_i16_load(ptr %a) {82; MIPS32-LABEL: fold_i16_load:83; MIPS32: # %bb.0: # %entry84; MIPS32-NEXT: lhu $2, -20($4)85; MIPS32-NEXT: jr $ra86; MIPS32-NEXT: nop87entry:88 %arrayidx = getelementptr inbounds i16, ptr %a, i32 -1089 %0 = load i16, ptr %arrayidx90 ret i16 %091}92 93define void @fold_i32_store(i32 %val, ptr %a) {94; MIPS32-LABEL: fold_i32_store:95; MIPS32: # %bb.0: # %entry96; MIPS32-NEXT: sw $4, 40($5)97; MIPS32-NEXT: jr $ra98; MIPS32-NEXT: nop99entry:100 %arrayidx = getelementptr inbounds i32, ptr %a, i32 10101 store i32 %val, ptr %arrayidx102 ret void103}104 105 106