diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c
index 99a3c1ef88c..f0bbc5b17ef 100644
--- a/gas/config/tc-pru.c
+++ b/gas/config/tc-pru.c
@@ -1400,7 +1400,7 @@ pru_parse_args (pru_insn_infoS *insn ATTRIBUTE_UNUSED, char *argstr,
 {
   char *p;
   char *end = NULL;
-  int i;
+  int i, len;
   p = argstr;
   i = 0;
   bool terminate = false;
@@ -1437,6 +1437,13 @@ pru_parse_args (pru_insn_infoS *insn ATTRIBUTE_UNUSED, char *argstr,
 	    as_bad (_("too many arguments"));
 	}
 
+      /* Strip trailing whitespace.  */
+      len = strlen (parsed_args[i]);
+      for (char *temp = parsed_args[i] + len - 1;
+	   len && ISSPACE (*temp);
+	   temp--, len--)
+	*temp = '\0';
+
       if (*parsestr == '\0' || (p != NULL && *p == '\0'))
 	terminate = true;
       ++i;
diff --git a/gas/testsuite/gas/pru/pr32073.d b/gas/testsuite/gas/pru/pr32073.d
new file mode 100644
index 00000000000..ac353bd8209
--- /dev/null
+++ b/gas/testsuite/gas/pru/pr32073.d
@@ -0,0 +1,11 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: whitespace parsing
+
+# Test the whitespace parsing
+
+.*: +file format elf32-pru
+
+Disassembly of section .text:
+0+0000 <[^>]*> 1300e2e1 	mov	r1, sp
+0+0004 <[^>]*> 1300e2e1 	mov	r1, sp
+0+0008 <[^>]*> 1300e2e1 	mov	r1, sp
diff --git a/gas/testsuite/gas/pru/pr32073.s b/gas/testsuite/gas/pru/pr32073.s
new file mode 100644
index 00000000000..ebfab2367a6
--- /dev/null
+++ b/gas/testsuite/gas/pru/pr32073.s
@@ -0,0 +1,6 @@
+# Source file used to test the whitespace parsing.
+
+foo:
+	mov	r1 /* comment */, r2	/* ... */
+	mov	r1	/* comment */, r2	/* ... */
+	mov	/* x */ r1	/* comment */ , r2	/* ... */
