brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 265177e Raw
296 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O3 -mtriple=riscv32 -mattr=+xcvmem -verify-machineinstrs < %s \3; RUN:   | FileCheck %s --check-prefixes=CHECK4 5define <2 x i32> @lb_ri_inc(ptr %a) {6; CHECK-LABEL: lb_ri_inc:7; CHECK:       # %bb.0:8; CHECK-NEXT:    cv.lb a1, (a0), 429; CHECK-NEXT:    ret10  %1 = load i8, ptr %a11  %2 = sext i8 %1 to i3212  %3 = getelementptr i8, ptr %a, i32 4213  %4 = ptrtoint ptr %3 to i3214  %5 = insertelement <2 x i32> poison, i32 %4, i32 015  %6 = insertelement <2 x i32> %5, i32 %2, i32 116  ret <2 x i32> %617}18 19define <2 x i32> @lb_rr_inc(ptr %a, i32 %b) {20; CHECK-LABEL: lb_rr_inc:21; CHECK:       # %bb.0:22; CHECK-NEXT:    cv.lb a1, (a0), a123; CHECK-NEXT:    ret24  %1 = load i8, ptr %a25  %2 = sext i8 %1 to i3226  %3 = getelementptr i8, ptr %a, i32 %b27  %4 = ptrtoint ptr %3 to i3228  %5 = insertelement <2 x i32> poison, i32 %4, i32 029  %6 = insertelement <2 x i32> %5, i32 %2, i32 130  ret <2 x i32> %631}32 33define i32 @lb_rr(ptr %a, i32 %b) {34; CHECK-LABEL: lb_rr:35; CHECK:       # %bb.0:36; CHECK-NEXT:    cv.lb a0, a1(a0)37; CHECK-NEXT:    ret38  %1 = getelementptr i8, ptr %a, i32 %b39  %2 = load i8, ptr %140  %3 = sext i8 %2 to i3241  ret i32 %342}43 44define <2 x i32> @lbu_ri_inc(ptr %a) {45; CHECK-LABEL: lbu_ri_inc:46; CHECK:       # %bb.0:47; CHECK-NEXT:    cv.lbu a1, (a0), 4248; CHECK-NEXT:    ret49  %1 = load i8, ptr %a50  %2 = zext i8 %1 to i3251  %3 = getelementptr i8, ptr %a, i32 4252  %4 = ptrtoint ptr %3 to i3253  %5 = insertelement <2 x i32> poison, i32 %4, i32 054  %6 = insertelement <2 x i32> %5, i32 %2, i32 155  ret <2 x i32> %656}57 58define <2 x i32> @lbu_rr_inc(ptr %a, i32 %b) {59; CHECK-LABEL: lbu_rr_inc:60; CHECK:       # %bb.0:61; CHECK-NEXT:    cv.lbu a1, (a0), a162; CHECK-NEXT:    ret63  %1 = load i8, ptr %a64  %2 = zext i8 %1 to i3265  %3 = getelementptr i8, ptr %a, i32 %b66  %4 = ptrtoint ptr %3 to i3267  %5 = insertelement <2 x i32> poison, i32 %4, i32 068  %6 = insertelement <2 x i32> %5, i32 %2, i32 169  ret <2 x i32> %670}71 72define i32 @lbu_rr(ptr %a, i32 %b) {73; CHECK-LABEL: lbu_rr:74; CHECK:       # %bb.0:75; CHECK-NEXT:    cv.lbu a0, a1(a0)76; CHECK-NEXT:    ret77  %1 = getelementptr i8, ptr %a, i32 %b78  %2 = load i8, ptr %179  %3 = zext i8 %2 to i3280  ret i32 %381}82 83define <2 x i32> @lh_ri_inc(ptr %a) {84; CHECK-LABEL: lh_ri_inc:85; CHECK:       # %bb.0:86; CHECK-NEXT:    cv.lh a1, (a0), 8487; CHECK-NEXT:    ret88  %1 = load i16, ptr %a89  %2 = sext i16 %1 to i3290  %3 = getelementptr i16, ptr %a, i32 4291  %4 = ptrtoint ptr %3 to i3292  %5 = insertelement <2 x i32> poison, i32 %4, i32 093  %6 = insertelement <2 x i32> %5, i32 %2, i32 194  ret <2 x i32> %695}96 97define <2 x i32> @lh_rr_inc(ptr %a, i32 %b) {98; CHECK-LABEL: lh_rr_inc:99; CHECK:       # %bb.0:100; CHECK-NEXT:    slli a1, a1, 1101; CHECK-NEXT:    cv.lh a1, (a0), a1102; CHECK-NEXT:    ret103  %1 = load i16, ptr %a104  %2 = sext i16 %1 to i32105  %3 = getelementptr i16, ptr %a, i32 %b106  %4 = ptrtoint ptr %3 to i32107  %5 = insertelement <2 x i32> poison, i32 %4, i32 0108  %6 = insertelement <2 x i32> %5, i32 %2, i32 1109  ret <2 x i32> %6110}111 112define i32 @lh_rr(ptr %a, i32 %b) {113; CHECK-LABEL: lh_rr:114; CHECK:       # %bb.0:115; CHECK-NEXT:    slli a1, a1, 1116; CHECK-NEXT:    cv.lh a0, a1(a0)117; CHECK-NEXT:    ret118  %1 = getelementptr i16, ptr %a, i32 %b119  %2 = load i16, ptr %1120  %3 = sext i16 %2 to i32121  ret i32 %3122}123 124define <2 x i32> @lhu_ri_inc(ptr %a) {125; CHECK-LABEL: lhu_ri_inc:126; CHECK:       # %bb.0:127; CHECK-NEXT:    cv.lhu a1, (a0), 84128; CHECK-NEXT:    ret129  %1 = load i16, ptr %a130  %2 = zext i16 %1 to i32131  %3 = getelementptr i16, ptr %a, i32 42132  %4 = ptrtoint ptr %3 to i32133  %5 = insertelement <2 x i32> poison, i32 %4, i32 0134  %6 = insertelement <2 x i32> %5, i32 %2, i32 1135  ret <2 x i32> %6136}137 138define <2 x i32> @lhu_rr_inc(ptr %a, i32 %b) {139; CHECK-LABEL: lhu_rr_inc:140; CHECK:       # %bb.0:141; CHECK-NEXT:    slli a1, a1, 1142; CHECK-NEXT:    cv.lhu a1, (a0), a1143; CHECK-NEXT:    ret144  %1 = load i16, ptr %a145  %2 = zext i16 %1 to i32146  %3 = getelementptr i16, ptr %a, i32 %b147  %4 = ptrtoint ptr %3 to i32148  %5 = insertelement <2 x i32> poison, i32 %4, i32 0149  %6 = insertelement <2 x i32> %5, i32 %2, i32 1150  ret <2 x i32> %6151}152 153define i32 @lhu_rr(ptr %a, i32 %b) {154; CHECK-LABEL: lhu_rr:155; CHECK:       # %bb.0:156; CHECK-NEXT:    slli a1, a1, 1157; CHECK-NEXT:    cv.lhu a0, a1(a0)158; CHECK-NEXT:    ret159  %1 = getelementptr i16, ptr %a, i32 %b160  %2 = load i16, ptr %1161  %3 = zext i16 %2 to i32162  ret i32 %3163}164 165define <2 x i32> @lw_ri_inc(ptr %a) {166; CHECK-LABEL: lw_ri_inc:167; CHECK:       # %bb.0:168; CHECK-NEXT:    cv.lw a1, (a0), 168169; CHECK-NEXT:    ret170  %1 = load i32, ptr %a171  %2 = getelementptr i32, ptr %a, i32 42172  %3 = ptrtoint ptr %2 to i32173  %4 = insertelement <2 x i32> poison, i32 %3, i32 0174  %5 = insertelement <2 x i32> %4, i32 %1, i32 1175  ret <2 x i32> %5176}177 178define <2 x i32> @lw_rr_inc(ptr %a, i32 %b) {179; CHECK-LABEL: lw_rr_inc:180; CHECK:       # %bb.0:181; CHECK-NEXT:    slli a1, a1, 2182; CHECK-NEXT:    cv.lw a1, (a0), a1183; CHECK-NEXT:    ret184  %1 = load i32, ptr %a185  %2 = getelementptr i32, ptr %a, i32 %b186  %3 = ptrtoint ptr %2 to i32187  %4 = insertelement <2 x i32> poison, i32 %3, i32 0188  %5 = insertelement <2 x i32> %4, i32 %1, i32 1189  ret <2 x i32> %5190}191 192define i32 @lw_rr(ptr %a, i32 %b) {193; CHECK-LABEL: lw_rr:194; CHECK:       # %bb.0:195; CHECK-NEXT:    slli a1, a1, 2196; CHECK-NEXT:    cv.lw a0, a1(a0)197; CHECK-NEXT:    ret198  %1 = getelementptr i32, ptr %a, i32 %b199  %2 = load i32, ptr %1200  ret i32 %2201}202 203define ptr @sb_ri_inc(ptr %a, i8 %b) {204; CHECK-LABEL: sb_ri_inc:205; CHECK:       # %bb.0:206; CHECK-NEXT:    cv.sb a1, (a0), 42207; CHECK-NEXT:    ret208  store i8 %b, ptr %a209  %1 = getelementptr i8, ptr %a, i32 42210  ret ptr %1211}212 213define ptr @sb_rr_inc(ptr %a, i8 %b, i32 %c) {214; CHECK-LABEL: sb_rr_inc:215; CHECK:       # %bb.0:216; CHECK-NEXT:    cv.sb a1, (a0), a2217; CHECK-NEXT:    ret218  store i8 %b, ptr %a219  %1 = getelementptr i8, ptr %a, i32 %c220  ret ptr %1221}222 223define void @sb_rr(ptr %a, i8 %b, i32 %c) {224; CHECK-LABEL: sb_rr:225; CHECK:       # %bb.0:226; CHECK-NEXT:    cv.sb a1, a2(a0)227; CHECK-NEXT:    ret228  %1 = getelementptr i8, ptr %a, i32 %c229  store i8 %b, ptr %1230  ret void231}232 233define ptr @sh_ri_inc(ptr %a, i16 %b) {234; CHECK-LABEL: sh_ri_inc:235; CHECK:       # %bb.0:236; CHECK-NEXT:    cv.sh a1, (a0), 84237; CHECK-NEXT:    ret238  store i16 %b, ptr %a239  %1 = getelementptr i16, ptr %a, i32 42240  ret ptr %1241}242 243define ptr @sh_rr_inc(ptr %a, i16 %b, i32 %c) {244; CHECK-LABEL: sh_rr_inc:245; CHECK:       # %bb.0:246; CHECK-NEXT:    slli a2, a2, 1247; CHECK-NEXT:    cv.sh a1, (a0), a2248; CHECK-NEXT:    ret249  store i16 %b, ptr %a250  %1 = getelementptr i16, ptr %a, i32 %c251  ret ptr %1252}253 254define void @sh_rr(ptr %a, i16 %b, i32 %c) {255; CHECK-LABEL: sh_rr:256; CHECK:       # %bb.0:257; CHECK-NEXT:    slli a2, a2, 1258; CHECK-NEXT:    cv.sh a1, a2(a0)259; CHECK-NEXT:    ret260  %1 = getelementptr i16, ptr %a, i32 %c261  store i16 %b, ptr %1262  ret void263}264 265define ptr @sw_ri_inc(ptr %a, i32 %b) {266; CHECK-LABEL: sw_ri_inc:267; CHECK:       # %bb.0:268; CHECK-NEXT:    cv.sw a1, (a0), 168269; CHECK-NEXT:    ret270  store i32 %b, ptr %a271  %1 = getelementptr i32, ptr %a, i32 42272  ret ptr %1273}274 275define ptr @sw_rr_inc(ptr %a, i32 %b, i32 %c) {276; CHECK-LABEL: sw_rr_inc:277; CHECK:       # %bb.0:278; CHECK-NEXT:    slli a2, a2, 2279; CHECK-NEXT:    cv.sw a1, (a0), a2280; CHECK-NEXT:    ret281  store i32 %b, ptr %a282  %1 = getelementptr i32, ptr %a, i32 %c283  ret ptr %1284}285 286define void @sw_rr(ptr %a, i32 %b, i32 %c) {287; CHECK-LABEL: sw_rr:288; CHECK:       # %bb.0:289; CHECK-NEXT:    slli a2, a2, 2290; CHECK-NEXT:    cv.sw a1, a2(a0)291; CHECK-NEXT:    ret292  %1 = getelementptr i32, ptr %a, i32 %c293  store i32 %b, ptr %1294  ret void295}296