aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim
diff options
Diffstat (limited to 'validation/optim')
-rw-r--r--validation/optim/and-lsr.c1
-rw-r--r--validation/optim/mask-lsr.c1
-rw-r--r--validation/optim/mask-out.c1
-rw-r--r--validation/optim/shift-zext.c1
-rw-r--r--validation/optim/shl-lsr.c14
-rw-r--r--validation/optim/store-load-bitfield.c12
6 files changed, 17 insertions, 13 deletions
diff --git a/validation/optim/and-lsr.c b/validation/optim/and-lsr.c
index df6b72f3..439eb822 100644
--- a/validation/optim/and-lsr.c
+++ b/validation/optim/and-lsr.c
@@ -8,7 +8,6 @@ unsigned int foo(unsigned int x)
/*
* check-name: and-lsr
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-contains: and\\..*\\$15
diff --git a/validation/optim/mask-lsr.c b/validation/optim/mask-lsr.c
index 1d37c91e..ec636444 100644
--- a/validation/optim/mask-lsr.c
+++ b/validation/optim/mask-lsr.c
@@ -8,7 +8,6 @@ unsigned int foo(unsigned int x, unsigned int y)
/*
* check-name: mask-lsr
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-excludes: %arg1
diff --git a/validation/optim/mask-out.c b/validation/optim/mask-out.c
index bf116873..ac85aec8 100644
--- a/validation/optim/mask-out.c
+++ b/validation/optim/mask-out.c
@@ -6,7 +6,6 @@ unsigned mask(unsigned a, unsigned b)
/*
* check-name: mask-out
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-excludes: %arg1
diff --git a/validation/optim/shift-zext.c b/validation/optim/shift-zext.c
index 070416f3..30409bec 100644
--- a/validation/optim/shift-zext.c
+++ b/validation/optim/shift-zext.c
@@ -6,7 +6,6 @@ unsigned int foo(unsigned int x)
/*
* check-name: shift-zext
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-contains: and\\..*%arg1, \\$0xfff
diff --git a/validation/optim/shl-lsr.c b/validation/optim/shl-lsr.c
new file mode 100644
index 00000000..4f4b7e66
--- /dev/null
+++ b/validation/optim/shl-lsr.c
@@ -0,0 +1,14 @@
+unsigned mask(unsigned x)
+{
+ return (x << 15) >> 15;
+}
+
+/*
+ * check-name: shl-lsr
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-contains: and\\..*0x1ffff
+ * check-output-excludes: lsr\\.
+ * check-output-excludes: shl\\.
+ */
diff --git a/validation/optim/store-load-bitfield.c b/validation/optim/store-load-bitfield.c
index 1d8ff240..f68cb600 100644
--- a/validation/optim/store-load-bitfield.c
+++ b/validation/optim/store-load-bitfield.c
@@ -28,21 +28,15 @@ int sfoo(int a)
ufoo:
.L0:
<entry-point>
- and.32 %r4 <- %arg1, $7
- shl.32 %r5 <- %r4, $2
- lsr.32 %r9 <- %r5, $2
- and.32 %r11 <- %r9, $7
+ and.32 %r11 <- %arg1, $7
ret.32 %r11
sfoo:
.L2:
<entry-point>
- and.32 %r16 <- %arg1, $7
- shl.32 %r17 <- %r16, $2
- lsr.32 %r21 <- %r17, $2
- trunc.3 %r22 <- (32) %r21
- sext.32 %r23 <- (3) %r22
+ trunc.3 %r16 <- (32) %arg1
+ sext.32 %r23 <- (3) %r16
ret.32 %r23