Home | History | Annotate | Download | only in Hexagon
      1 ; RUN: llc -march=hexagon -mcpu=hexagonv5  < %s | FileCheck %s
      2 ; Generate MemOps for V4 and above.
      3 
      4 
      5 define void @f(i8* nocapture %p) nounwind {
      6 entry:
      7 ; CHECK:  memb(r{{[0-9]+}}{{ *}}+{{ *}}#10){{ *}}-={{ *}}#1
      8   %add.ptr = getelementptr inbounds i8* %p, i32 10
      9   %0 = load i8* %add.ptr, align 1
     10   %conv = zext i8 %0 to i32
     11   %sub = add nsw i32 %conv, 255
     12   %conv1 = trunc i32 %sub to i8
     13   store i8 %conv1, i8* %add.ptr, align 1
     14   ret void
     15 }
     16 
     17 define void @g(i8* nocapture %p, i32 %i) nounwind {
     18 entry:
     19 ; CHECK:  memb(r{{[0-9]+}}{{ *}}+{{ *}}#10){{ *}}-={{ *}}#1
     20   %add.ptr.sum = add i32 %i, 10
     21   %add.ptr1 = getelementptr inbounds i8* %p, i32 %add.ptr.sum
     22   %0 = load i8* %add.ptr1, align 1
     23   %conv = zext i8 %0 to i32
     24   %sub = add nsw i32 %conv, 255
     25   %conv2 = trunc i32 %sub to i8
     26   store i8 %conv2, i8* %add.ptr1, align 1
     27   ret void
     28 }
     29