]> granicus.if.org Git - llvm/commitdiff
[PowerPC] Fix reversed bit issue in DCMX mask for "xvtstdcdp" and "xvtstdcsp" P9...
authorStefan Pintilie <stefanp@ca.ibm.com>
Tue, 2 Apr 2019 16:56:01 +0000 (16:56 +0000)
committerStefan Pintilie <stefanp@ca.ibm.com>
Tue, 2 Apr 2019 16:56:01 +0000 (16:56 +0000)
Did experiments on power 9 machine, checked the outputs for NaN & Infinity+
cases with corresponding DCMX bit set. Confirmed the DCMX mask bit for NaN and
infinity+ are reversed.

This patch fixes the issue.

Patch by Victor Huang.

Differential Revision: https://reviews.llvm.org/D59384

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357494 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrFormats.td
test/MC/Disassembler/PowerPC/vsx.txt
test/MC/PowerPC/vsx.s

index 0460c64ee439ec0a410069e13549f2bee001c624..7091f790da5b45176ba81de13236d2da07915fac 100644 (file)
@@ -1183,9 +1183,9 @@ class XX2_RD6_DCMX7_RS6<bits<6> opcode, bits<4> xo1, bits<3> xo2,
   let Inst{11-15} = DCMX{4-0};
   let Inst{16-20} = XB{4-0};
   let Inst{21-24} = xo1;
-  let Inst{25}    = DCMX{5};
+  let Inst{25}    = DCMX{6};
   let Inst{26-28} = xo2;
-  let Inst{29}    = DCMX{6};
+  let Inst{29}    = DCMX{5};
   let Inst{30}    = XB{5};
   let Inst{31}    = XT{5};
 }
index d431874f6057cb7a4132e6549588ee891336be46..868716d0614918616f854af45ba208edcd28192b 100644 (file)
 
 # CHECK: mfvsrld 3, 34
 0x7c 0x43 0x02 0x67
+
+# CHECK: xvtstdcdp 63, 63, 65
+0xf3 0xe1 0xff 0xeb
+
+# CHECK: xvtstdcsp 63, 63, 34
+0xf3 0xe2 0xfe 0xaf
index 0dd9c50b940d3a70081a08391922990acb96c255..73c43961a2911c7ac12eeebf446beb92b5400261 100644 (file)
 # CHECK-BE: mfvsrld 3, 34                      # encoding: [0x7c,0x43,0x02,0x67]
 # CHECK-LE: mfvsrld 3, 34                      # encoding: [0x67,0x02,0x43,0x7c]
             mfvsrld 3, 34
+
+# CHECK-BE: xvtstdcdp 63, 63, 65               # encoding: [0xf3,0xe1,0xff,0xeb]
+# CHECK-LE: xvtstdcdp 63, 63, 65               # encoding: [0xeb,0xff,0xe1,0xf3]
+            xvtstdcdp 63, 63, 65
+# CHECK-BE: xvtstdcsp 63, 63, 34               # encoding: [0xf3,0xe2,0xfe,0xaf]
+# CHECK-LE: xvtstdcsp 63, 63, 34               # encoding: [0xaf,0xfe,0xe2,0xf3]
+            xvtstdcsp 63, 63, 34