34 lines · plain
1; RUN: llc -mtriple=hexagon -mcpu=hexagonv5 < %s | FileCheck %s2; Generate MemOps for V4 and above.3 4 5define void @f(ptr %p) nounwind {6entry:7; CHECK: memw(r{{[0-9]+}}+#40) -= #18 %p.addr = alloca ptr, align 49 store ptr %p, ptr %p.addr, align 410 %0 = load ptr, ptr %p.addr, align 411 %add.ptr = getelementptr inbounds i32, ptr %0, i32 1012 %1 = load i32, ptr %add.ptr, align 413 %sub = sub nsw i32 %1, 114 store i32 %sub, ptr %add.ptr, align 415 ret void16}17 18define void @g(ptr %p, i32 %i) nounwind {19entry:20; CHECK: memw(r{{[0-9]+}}+#40) -= #121 %p.addr = alloca ptr, align 422 %i.addr = alloca i32, align 423 store ptr %p, ptr %p.addr, align 424 store i32 %i, ptr %i.addr, align 425 %0 = load ptr, ptr %p.addr, align 426 %1 = load i32, ptr %i.addr, align 427 %add.ptr = getelementptr inbounds i32, ptr %0, i32 %128 %add.ptr1 = getelementptr inbounds i32, ptr %add.ptr, i32 1029 %2 = load i32, ptr %add.ptr1, align 430 %sub = sub nsw i32 %2, 131 store i32 %sub, ptr %add.ptr1, align 432 ret void33}34