Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1385)

Side by Side Diff: src/IceTargetLoweringARM32.cpp

Issue 1685253003: ARM32 vector lowering: fabs, scalarize remaining arithmetic operations. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: More tests. Enabling crosstests. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- subzero/src/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===// 1 //===- subzero/src/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 /// 9 ///
10 /// \file 10 /// \file
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 return; 440 return;
441 case Inst::Arithmetic: { 441 case Inst::Arithmetic: {
442 Variable *Dest = Instr->getDest(); 442 Variable *Dest = Instr->getDest();
443 const Type DestTy = Dest->getType(); 443 const Type DestTy = Dest->getType();
444 const InstArithmetic::OpKind Op = 444 const InstArithmetic::OpKind Op =
445 llvm::cast<InstArithmetic>(Instr)->getOp(); 445 llvm::cast<InstArithmetic>(Instr)->getOp();
446 if (isVectorType(DestTy)) { 446 if (isVectorType(DestTy)) {
447 switch (Op) { 447 switch (Op) {
448 default: 448 default:
449 break; 449 break;
450 case InstArithmetic::Ashr:
450 case InstArithmetic::Fdiv: 451 case InstArithmetic::Fdiv:
452 case InstArithmetic::Frem:
453 case InstArithmetic::Lshr:
454 case InstArithmetic::Sdiv:
455 case InstArithmetic::Shl:
456 case InstArithmetic::Srem:
451 case InstArithmetic::Udiv: 457 case InstArithmetic::Udiv:
452 case InstArithmetic::Sdiv: 458 case InstArithmetic::Urem:
453 scalarizeArithmetic(Op, Dest, Instr->getSrc(0), Instr->getSrc(1)); 459 scalarizeArithmetic(Op, Dest, Instr->getSrc(0), Instr->getSrc(1));
454 Instr->setDeleted(); 460 Instr->setDeleted();
455 return; 461 return;
456 } 462 }
457 } 463 }
458 switch (DestTy) { 464 switch (DestTy) {
459 default: 465 default:
460 return; 466 return;
461 case IceType_i64: { 467 case IceType_i64: {
462 // Technically, ARM has its own aeabi routines, but we can use the 468 // Technically, ARM has its own aeabi routines, but we can use the
(...skipping 6331 matching lines...) Expand 10 before | Expand all | Expand 10 after
6794 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; 6800 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n";
6795 } 6801 }
6796 6802
6797 llvm::SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; 6803 llvm::SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM];
6798 llvm::SmallBitVector 6804 llvm::SmallBitVector
6799 TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; 6805 TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM];
6800 llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; 6806 llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM];
6801 6807
6802 } // end of namespace ARM32 6808 } // end of namespace ARM32
6803 } // end of namespace Ice 6809 } // end of namespace Ice
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698