From 1802f85a455fbbe5fd1b55183bf588e2e4731dc5 Mon Sep 17 00:00:00 2001 From: Roel Jordans Date: Fri, 12 Feb 2016 01:12:01 +0100 Subject: [PATCH] [AVR] fix load/store tests --- test/CodeGen/AVR/load.ll | 37 ++++++++++++++++++------------------- test/CodeGen/AVR/store.ll | 37 ++++++++++++++++++------------------- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/test/CodeGen/AVR/load.ll b/test/CodeGen/AVR/load.ll index 1f7a7f1cccd..d877b0c5720 100644 --- a/test/CodeGen/AVR/load.ll +++ b/test/CodeGen/AVR/load.ll @@ -1,24 +1,23 @@ ; RUN: llc -mattr=sram < %s -march=avr | FileCheck %s -; XFAIL: * define i8 @load8(i8* %x) { ; CHECK-LABEL: load8: -; CHECK: ld r24, Z +; CHECK: ld r24, {{[XYZ]}} %1 = load i8, i8* %x ret i8 %1 } define i16 @load16(i16* %x) { ; CHECK-LABEL: load16: -; CHECK: ld r24, Z -; CHECK: ldd r25, Z+1 +; CHECK: ld r24, {{[YZ]}} +; CHECK: ldd r25, {{[YZ]}}+1 %1 = load i16, i16* %x ret i16 %1 } define i8 @load8disp(i8* %x) { ; CHECK-LABEL: load8disp: -; CHECK: ldd r24, Z+63 +; CHECK: ldd r24, {{[YZ]}}+63 %1 = getelementptr inbounds i8, i8* %x, i64 63 %2 = load i8, i8* %1 ret i8 %2 @@ -26,10 +25,10 @@ define i8 @load8disp(i8* %x) { define i8 @load8nodisp(i8* %x) { ; CHECK-LABEL: load8nodisp: -; CHECK: movw r30, r24 -; CHECK: subi r30, 192 -; CHECK: sbci r31, 255 -; CHECK: ld r24, Z +; CHECK: movw r26, r24 +; CHECK: subi r26, 192 +; CHECK: sbci r27, 255 +; CHECK: ld r24, {{[XYZ]}} %1 = getelementptr inbounds i8, i8* %x, i64 64 %2 = load i8, i8* %1 ret i8 %2 @@ -37,8 +36,8 @@ define i8 @load8nodisp(i8* %x) { define i16 @load16disp(i16* %x) { ; CHECK-LABEL: load16disp: -; CHECK: ldd r24, Z+62 -; CHECK: ldd r25, Z+63 +; CHECK: ldd r24, {{[YZ]}}+62 +; CHECK: ldd r25, {{[YZ]}}+63 %1 = getelementptr inbounds i16, i16* %x, i64 31 %2 = load i16, i16* %1 ret i16 %2 @@ -49,8 +48,8 @@ define i16 @load16nodisp(i16* %x) { ; CHECK: movw r30, r24 ; CHECK: subi r30, 192 ; CHECK: sbci r31, 255 -; CHECK: ld r24, Z -; CHECK: ldd r25, Z+1 +; CHECK: ld r24, {{[YZ]}} +; CHECK: ldd r25, {{[YZ]}}+1 %1 = getelementptr inbounds i16, i16* %x, i64 32 %2 = load i16, i16* %1 ret i16 %2 @@ -58,7 +57,7 @@ define i16 @load16nodisp(i16* %x) { define i8 @load8postinc(i8* %x, i8 %y) { ; CHECK-LABEL: load8postinc: -; CHECK: ld {{.*}}, Z+ +; CHECK: ld {{.*}}, {{[XYZ]}}+ entry: %tobool6 = icmp eq i8 %y, 0 br i1 %tobool6, label %while.end, label %while.body @@ -79,8 +78,8 @@ while.end: ; preds = %while.body, %entry define i16 @load16postinc(i16* %x, i16 %y) { ; CHECK-LABEL: load16postinc: -; CHECK: ld {{.*}}, X+ -; CHECK: ld {{.*}}, X+ +; CHECK: ld {{.*}}, {{[XYZ]}}+ +; CHECK: ld {{.*}}, {{[XYZ]}}+ entry: %tobool2 = icmp eq i16 %y, 0 br i1 %tobool2, label %while.end, label %while.body @@ -101,7 +100,7 @@ while.end: ; preds = %while.body, %entry define i8 @load8predec(i8* %x, i8 %y) { ; CHECK-LABEL: load8predec: -; CHECK: ld {{.*}}, -Z +; CHECK: ld {{.*}}, -{{[XYZ]}} entry: %tobool6 = icmp eq i8 %y, 0 br i1 %tobool6, label %while.end, label %while.body @@ -122,8 +121,8 @@ while.end: ; preds = %while.body, %entry define i16 @load16predec(i16* %x, i16 %y) { ; CHECK-LABEL: load16predec: -; CHECK: ld {{.*}}, -X -; CHECK: ld {{.*}}, -X +; CHECK: ld {{.*}}, -{{[XYZ]}} +; CHECK: ld {{.*}}, -{{[XYZ]}} entry: %tobool2 = icmp eq i16 %y, 0 br i1 %tobool2, label %while.end, label %while.body diff --git a/test/CodeGen/AVR/store.ll b/test/CodeGen/AVR/store.ll index f10dd115291..a18b84f1009 100644 --- a/test/CodeGen/AVR/store.ll +++ b/test/CodeGen/AVR/store.ll @@ -1,24 +1,23 @@ ; RUN: llc -mattr=sram < %s -march=avr | FileCheck %s -; XFAIL: * define void @store8(i8* %x, i8 %y) { ; CHECK-LABEL: store8: -; CHECK: st Z, r22 +; CHECK: st {{[XYZ]}}, r22 store i8 %y, i8* %x ret void } define void @store16(i16* %x, i16 %y) { ; CHECK-LABEL: store16: -; CHECK: st Z, r22 -; CHECK: std Z+1, r23 +; CHECK: st {{[YZ]}}, r22 +; CHECK: std {{[YZ]}}+1, r23 store i16 %y, i16* %x ret void } define void @store8disp(i8* %x, i8 %y) { ; CHECK-LABEL: store8disp: -; CHECK: std Z+63, r22 +; CHECK: std {{[YZ]}}+63, r22 %arrayidx = getelementptr inbounds i8, i8* %x, i16 63 store i8 %y, i8* %arrayidx ret void @@ -26,10 +25,10 @@ define void @store8disp(i8* %x, i8 %y) { define void @store8nodisp(i8* %x, i8 %y) { ; CHECK-LABEL: store8nodisp: -; CHECK: movw r30, r24 -; CHECK: subi r30, 192 -; CHECK: sbci r31, 255 -; CHECK: st Z, r22 +; CHECK: movw r26, r24 +; CHECK: subi r26, 192 +; CHECK: sbci r27, 255 +; CHECK: st {{[XYZ]}}, r22 %arrayidx = getelementptr inbounds i8, i8* %x, i16 64 store i8 %y, i8* %arrayidx ret void @@ -37,8 +36,8 @@ define void @store8nodisp(i8* %x, i8 %y) { define void @store16disp(i16* %x, i16 %y) { ; CHECK-LABEL: store16disp: -; CHECK: std Z+62, r22 -; CHECK: std Z+63, r23 +; CHECK: std {{[YZ]}}+62, r22 +; CHECK: std {{[YZ]}}+63, r23 %arrayidx = getelementptr inbounds i16, i16* %x, i16 31 store i16 %y, i16* %arrayidx ret void @@ -49,8 +48,8 @@ define void @store16nodisp(i16* %x, i16 %y) { ; CHECK: movw r30, r24 ; CHECK: subi r30, 192 ; CHECK: sbci r31, 255 -; CHECK: st Z, r22 -; CHECK: std Z+1, r23 +; CHECK: st {{[YZ]}}, r22 +; CHECK: std {{[YZ]}}+1, r23 %arrayidx = getelementptr inbounds i16, i16* %x, i16 32 store i16 %y, i16* %arrayidx ret void @@ -58,7 +57,7 @@ define void @store16nodisp(i16* %x, i16 %y) { define void @store8postinc(i8* %x, i8 %y) { ; CHECK-LABEL: store8postinc: -; CHECK: st Z+, {{.*}} +; CHECK: st {{[XYZ]}}+, {{.*}} entry: %tobool3 = icmp eq i8 %y, 0 br i1 %tobool3, label %while.end, label %while.body @@ -76,8 +75,8 @@ while.end: ; preds = %while.body, %entry define void @store16postinc(i16* %x, i16 %y) { ; CHECK-LABEL: store16postinc: -; CHECK: st X+, {{.*}} -; CHECK: st X+, {{.*}} +; CHECK: st {{[XYZ]}}+, {{.*}} +; CHECK: st {{[XYZ]}}+, {{.*}} entry: %tobool3 = icmp eq i16 %y, 0 br i1 %tobool3, label %while.end, label %while.body @@ -95,7 +94,7 @@ while.end: ; preds = %while.body, %entry define void @store8predec(i8* %x, i8 %y) { ; CHECK-LABEL: store8predec: -; CHECK: st -Z, {{.*}} +; CHECK: st -{{[XYZ]}}, {{.*}} entry: %tobool3 = icmp eq i8 %y, 0 br i1 %tobool3, label %while.end, label %while.body @@ -113,8 +112,8 @@ while.end: ; preds = %while.body, %entry define void @store16predec(i16* %x, i16 %y) { ; CHECK-LABEL: store16predec: -; CHECK: st -X, {{.*}} -; CHECK: st -X, {{.*}} +; CHECK: st -{{[XYZ]}}, {{.*}} +; CHECK: st -{{[XYZ]}}, {{.*}} entry: %tobool3 = icmp eq i16 %y, 0 br i1 %tobool3, label %while.end, label %while.body