100 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; s4_0Imm4; CHECK: memb(r0++#-1) = r15define ptr @foo1(ptr %a, i8 %b) {6 store i8 %b, ptr %a7 %c = getelementptr i8, ptr %a, i32 -18 ret ptr %c9}10 11; s4_1Imm12; CHECK: memh(r0++#-2) = r113define ptr @foo2(ptr %a, i16 %b) {14 store i16 %b, ptr %a15 %c = getelementptr i16, ptr %a, i32 -116 ret ptr %c17}18 19; s4_2Imm20; CHECK: memw(r0++#-4) = r121define ptr @foo3(ptr %a, i32 %b) {22 store i32 %b, ptr %a23 %c = getelementptr i32, ptr %a, i32 -124 ret ptr %c25}26 27; s4_3Imm28; CHECK: memd(r0++#-8) = r3:229define ptr @foo4(ptr %a, i64 %b) {30 store i64 %b, ptr %a31 %c = getelementptr i64, ptr %a, i32 -132 ret ptr %c33}34 35; s6Ext36; CHECK: if (p0.new) memw(r0+#0) = #-137define void @foo5(ptr %a, i1 %b) {38br i1 %b, label %x, label %y39x:40 store i32 -1, ptr %a41 ret void42y:43 ret void44}45 46; s10Ext47; CHECK: p0 = cmp.eq(r0,#-1)48define i1 @foo7(i32 %a) {49 %b = icmp eq i32 %a, -150 ret i1 %b51}52 53; s11_0Ext54; CHECK: memb(r0+#-1) = r155define void @foo8(ptr %a, i8 %b) {56 %c = getelementptr i8, ptr %a, i32 -157 store i8 %b, ptr %c58 ret void59}60 61; s11_1Ext62; CHECK: memh(r0+#-2) = r163define void @foo9(ptr %a, i16 %b) {64 %c = getelementptr i16, ptr %a, i32 -165 store i16 %b, ptr %c66 ret void67}68 69; s11_2Ext70; CHECK: memw(r0+#-4) = r171define void @foo10(ptr %a, i32 %b) {72 %c = getelementptr i32, ptr %a, i32 -173 store i32 %b, ptr %c74 ret void75}76 77; s11_3Ext78; CHECK: memd(r0+#-8) = r3:279define void @foo11(ptr %a, i64 %b) {80 %c = getelementptr i64, ptr %a, i32 -181 store i64 %b, ptr %c82 ret void83}84 85; s12Ext86; CHECK: r1 = mux(p0,#-1,r0)87define i32 @foo12(i32 %a, i1 %b) {88 br i1 %b, label %x, label %y89x:90 ret i32 -191y:92 ret i32 %a93}94 95; s16Ext96; CHECK: r0 = #-297define i32 @foo13() {98 ret i32 -299}100