diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java
index bc46cceb0891e71932cfdcde91384bc64e36663b..3caa924bf46ae9949f857ce71ff1701b605083ec 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java
@@ -188,8 +188,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode {
         int result = semantics.getIntStart();
         na.enable(operand);
         int opCount = 0;
+        int[] data = operand.getDataWithoutCopying();
         for (int i = 0; i < operand.getLength(); i++) {
-            int d = operand.getDataAt(i);
+            int d = data[i];
             if (na.check(d)) {
                 if (profiledNaRm) {
                     continue;
@@ -213,8 +214,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode {
         double result = semantics.getDoubleStart();
         na.enable(operand);
         int opCount = 0;
+        double[] data = operand.getDataWithoutCopying();
         for (int i = 0; i < operand.getLength(); i++) {
-            double d = operand.getDataAt(i);
+            double d = data[i];
             if (na.check(d)) {
                 if (profiledNaRm) {
                     continue;
@@ -238,8 +240,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode {
         int result = semantics.getIntStart();
         na.enable(operand);
         int opCount = 0;
+        byte[] data = operand.getDataWithoutCopying();
         for (int i = 0; i < operand.getLength(); i++) {
-            byte d = operand.getDataAt(i);
+            byte d = data[i];
             if (na.check(d)) {
                 if (profiledNaRm) {
                     continue;