775 lines · c
1// Check target CPUs are correctly passed.2 3// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=rocket-rv32 | FileCheck -check-prefix=MCPU-ROCKET32 %s4// MCPU-ROCKET32: "-nostdsysteminc" "-target-cpu" "rocket-rv32"5// MCPU-ROCKET32: "-target-feature" "+zicsr" "-target-feature" "+zifencei"6 7// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=rocket-rv64 | FileCheck -check-prefix=MCPU-ROCKET64 %s8// MCPU-ROCKET64: "-nostdsysteminc" "-target-cpu" "rocket-rv64"9// MCPU-ROCKET64: "-target-feature" "+zicsr" "-target-feature" "+zifencei"10 11// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=syntacore-scr1-base | FileCheck -check-prefix=MCPU-SYNTACORE-SCR1-BASE %s12// MCPU-SYNTACORE-SCR1-BASE: "-target-cpu" "syntacore-scr1-base"13// MCPU-SYNTACORE-SCR1-BASE: "-target-feature" "+c"14// MCPU-SYNTACORE-SCR1-BASE: "-target-feature" "+zicsr" "-target-feature" "+zifencei"15// MCPU-SYNTACORE-SCR1-BASE: "-target-abi" "ilp32"16 17// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=syntacore-scr1-max | FileCheck -check-prefix=MCPU-SYNTACORE-SCR1-MAX %s18// MCPU-SYNTACORE-SCR1-MAX: "-target-cpu" "syntacore-scr1-max"19// MCPU-SYNTACORE-SCR1-MAX: "-target-feature" "+m" "-target-feature" "+c"20// MCPU-SYNTACORE-SCR1-MAX: "-target-feature" "+zicsr" "-target-feature" "+zifencei"21// MCPU-SYNTACORE-SCR1-MAX: "-target-abi" "ilp32"22 23// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=xiangshan-nanhu | FileCheck -check-prefix=MCPU-XIANGSHAN-NANHU %s24// MCPU-XIANGSHAN-NANHU: "-nostdsysteminc" "-target-cpu" "xiangshan-nanhu"25// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"26// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+c"27// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+zicbom" "-target-feature" "+zicboz" "-target-feature" "+zicsr" "-target-feature" "+zifencei"28// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+zba" "-target-feature" "+zbb" "-target-feature" "+zbc"29// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+zbkb" "-target-feature" "+zbkc" "-target-feature" "+zbkx" "-target-feature" "+zbs"30// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+zkn" "-target-feature" "+zknd" "-target-feature" "+zkne" "-target-feature" "+zknh"31// MCPU-XIANGSHAN-NANHU-SAME: "-target-feature" "+zks" "-target-feature" "+zksed" "-target-feature" "+zksh" "-target-feature" "+svinval"32// MCPU-XIANGSHAN-NANHU-SAME: "-target-abi" "lp64d"33 34// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=xiangshan-kunminghu | FileCheck -check-prefix=MCPU-XIANGSHAN-KUNMINGHU %s35// MCPU-XIANGSHAN-KUNMINGHU: "-nostdsysteminc" "-target-cpu" "xiangshan-kunminghu"36// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+m"37// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+a"38// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+f"39// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+d"40// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+c"41// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+b"42// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+v"43// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+h"44// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zic64b" 45// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicbom" 46// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicbop" 47// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicboz" 48// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ziccamoa" 49// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ziccif" 50// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicclsm" 51// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ziccrse" 52// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicntr" 53// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicond" 54// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zicsr" 55// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zihintntl" 56// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zacas" 57// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zawrs" 58// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zfa" 59// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zfh" 60// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zca" 61// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zcb" 62// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zcmop" 63// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zba" 64// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbb" 65// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbc"66// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbkb" 67// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbkc" 68// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbkx" 69// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zbs"70// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zkn" 71// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zks" 72// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zvbb" 73// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zve64d" 74// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zve64f" 75// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zve64x" 76// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zvfh"77// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zvkb"78// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zvkt"79// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+zvl128b"80// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+sha"81// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shcounterenw"82// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shgatpa"83// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shtvala"84// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shvsatpa"85// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shvstvala"86// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+shvstvecd"87// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smcsrind"88// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smdbltrp"89// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smmpm"90// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smnpm"91// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smrnmi"92// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+smstateen"93// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+sscofpmf"94// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+sscsrind"95// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ssdbltrp"96// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ssnpm"97// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+sspm"98// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ssstateen"99// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ssstrict"100// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+sstc"101// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+ssu64xl"102// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+supm"103// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-feature" "+svnapot"104// MCPU-XIANGSHAN-KUNMINGHU-SAME: "-target-abi" "lp64d"105 106// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=spacemit-x60 | FileCheck -check-prefix=MCPU-SPACEMIT-X60 %s107// MCPU-SPACEMIT-X60: "-nostdsysteminc" "-target-cpu" "spacemit-x60"108// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+m"109// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+a"110// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+f"111// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+d"112// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+c"113// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+v"114// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zic64b"115// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicbom"116// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicbop"117// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicboz"118// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+ziccamoa"119// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+ziccif"120// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicclsm"121// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+ziccrse"122// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicntr"123// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicond"124// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zicsr"125// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zifencei"126// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zihintpause"127// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zihpm"128// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+za64rs"129// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zfh"130// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zfhmin"131// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zba"132// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zbb"133// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zbc"134// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zbkc"135// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zbs"136// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zkt"137// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zve32f"138// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zve32x"139// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zve64d"140// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zve64f"141// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zve64x"142// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvfh"143// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvfhmin"144// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvkt"145// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvl128b"146// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvl256b"147// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvl32b"148// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+zvl64b"149// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+ssccptr"150// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+sscofpmf"151// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+sscounterenw"152// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+sstc"153// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+sstvala"154// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+sstvecd"155// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+svade"156// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+svbare"157// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+svinval"158// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+svnapot"159// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+svpbmt"160// MCPU-SPACEMIT-X60-SAME: "-target-feature" "+xsmtvdot"161// MCPU-SPACEMIT-X60-SAME: "-target-abi" "lp64d"162 163// We cannot check much for -mcpu=native, but it should be replaced by a valid CPU string.164// RUN: %clang --target=riscv64 -### -c %s -mcpu=native 2> %t.err || true165// RUN: FileCheck --input-file=%t.err -check-prefix=MCPU-NATIVE %s166// MCPU-NATIVE-NOT: "-target-cpu" "native"167 168// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=rocket-rv32 | FileCheck -check-prefix=MTUNE-ROCKET32 %s169// MTUNE-ROCKET32: "-tune-cpu" "rocket-rv32"170 171// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=rocket-rv64 | FileCheck -check-prefix=MTUNE-ROCKET64 %s172// MTUNE-ROCKET64: "-tune-cpu" "rocket-rv64"173 174// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=mips-p8700 | FileCheck -check-prefix=MTUNE-MIPS-P8700 %s175// MTUNE-MIPS-P8700: "-tune-cpu" "mips-p8700"176 177// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=mips-p8700 | FileCheck -check-prefix=MCPU-MIPS-P8700 %s178// MCPU-MIPS-P8700: "-target-cpu" "mips-p8700"179// MCPU-MIPS-P8700-SAME: "-target-feature" "+m"180// MCPU-MIPS-P8700-SAME: "-target-feature" "+a"181// MCPU-MIPS-P8700-SAME: "-target-feature" "+f"182// MCPU-MIPS-P8700-SAME: "-target-feature" "+d"183// MCPU-MIPS-P8700-SAME: "-target-feature" "+c"184// MCPU-MIPS-P8700-SAME: "-target-feature" "+zicsr"185// MCPU-MIPS-P8700-SAME: "-target-feature" "+zifencei"186// MCPU-MIPS-P8700-SAME: "-target-feature" "+zaamo"187// MCPU-MIPS-P8700-SAME: "-target-feature" "+zalrsc"188// MCPU-MIPS-P8700-SAME: "-target-feature" "+zba"189// MCPU-MIPS-P8700-SAME: "-target-feature" "+zbb"190// MCPU-MIPS-P8700-SAME: "-target-feature" "+xmipscbop"191// MCPU-MIPS-P8700-SAME: "-target-feature" "+xmipscmov"192// MCPU-MIPS-P8700-SAME: "-target-feature" "+xmipslsp"193 194// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr1-base | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR1-BASE %s195// MTUNE-SYNTACORE-SCR1-BASE: "-tune-cpu" "syntacore-scr1-base"196 197// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr1-max | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR1-MAX %s198// MTUNE-SYNTACORE-SCR1-MAX: "-tune-cpu" "syntacore-scr1-max"199 200// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=tt-ascalon-d8 | FileCheck -check-prefix=MTUNE-TT-ASCALON-D8 %s201// MTUNE-TT-ASCALON-D8: "-tune-cpu" "tt-ascalon-d8"202 203// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=tt-ascalon-d8 | FileCheck -check-prefix=MCPU-TT-ASCALON-D8 %s204// MCPU-TT-ASCALON-D8: "-target-cpu" "tt-ascalon-d8"205// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+m"206// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+a"207// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+f"208// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+d"209// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+c"210// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+v"211// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+h"212// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicbom"213// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicbop"214// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicboz"215// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicntr"216// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicond"217// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicsr"218// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zifencei"219// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihintntl"220// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihintpause"221// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihpm"222// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zimop"223// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zmmul"224// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zawrs"225// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfa"226// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfbfmin"227// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfh"228// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfhmin"229// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zca"230// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zcb"231// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zba"232// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zbb"233// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zbs"234// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zkt"235// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvbb"236// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvbc"237// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve32f"238// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve32x"239// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64d"240// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64f"241// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64x"242// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfbfmin"243// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfbfwma"244// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfh"245// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfhmin"246// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkb"247// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkg"248// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkn"249// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvknc"250// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkned"251// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkng"252// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvknhb"253// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkt"254// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl128b"255// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl256b"256// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl32b"257// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl64b"258// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+sscofpmf"259// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svinval"260// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svnapot"261// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svpbmt"262 263// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=veyron-v1 | FileCheck -check-prefix=MCPU-VEYRON-V1 %s264// MCPU-VEYRON-V1: "-target-cpu" "veyron-v1"265// MCPU-VEYRON-V1: "-target-feature" "+m"266// MCPU-VEYRON-V1: "-target-feature" "+a"267// MCPU-VEYRON-V1: "-target-feature" "+f"268// MCPU-VEYRON-V1: "-target-feature" "+d"269// MCPU-VEYRON-V1: "-target-feature" "+c"270// MCPU-VEYRON-V1: "-target-feature" "+zicbom"271// MCPU-VEYRON-V1: "-target-feature" "+zicbop"272// MCPU-VEYRON-V1: "-target-feature" "+zicboz"273// MCPU-VEYRON-V1: "-target-feature" "+zicntr"274// MCPU-VEYRON-V1: "-target-feature" "+zicsr"275// MCPU-VEYRON-V1: "-target-feature" "+zifencei"276// MCPU-VEYRON-V1: "-target-feature" "+zihintpause"277// MCPU-VEYRON-V1: "-target-feature" "+zihpm"278// MCPU-VEYRON-V1: "-target-feature" "+zba"279// MCPU-VEYRON-V1: "-target-feature" "+zbb"280// MCPU-VEYRON-V1: "-target-feature" "+zbc"281// MCPU-VEYRON-V1: "-target-feature" "+zbs"282// MCPU-VEYRON-V1: "-target-feature" "+xventanacondops"283// MCPU-VEYRON-V1: "-target-abi" "lp64d"284 285// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=veyron-v1 | FileCheck -check-prefix=MTUNE-VEYRON-V1 %s286// MTUNE-VEYRON-V1: "-tune-cpu" "veyron-v1"287 288// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=xiangshan-nanhu | FileCheck -check-prefix=MTUNE-XIANGSHAN-NANHU %s289// MTUNE-XIANGSHAN-NANHU: "-tune-cpu" "xiangshan-nanhu"290 291// Check -mtune alias CPU has resolved to the right CPU according XLEN.292// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=generic | FileCheck -check-prefix=MTUNE-GENERIC-32 %s293// MTUNE-GENERIC-32: "-tune-cpu" "generic"294 295// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=generic | FileCheck -check-prefix=MTUNE-GENERIC-64 %s296// MTUNE-GENERIC-64: "-tune-cpu" "generic"297 298// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=rocket | FileCheck -check-prefix=MTUNE-ROCKET-32 %s299// MTUNE-ROCKET-32: "-tune-cpu" "rocket"300 301// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=rocket | FileCheck -check-prefix=MTUNE-ROCKET-64 %s302// MTUNE-ROCKET-64: "-tune-cpu" "rocket"303 304// We cannot check much for -mtune=native, but it should be replaced by a valid CPU string.305// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=native | FileCheck -check-prefix=MTUNE-NATIVE %s306// MTUNE-NATIVE-NOT: "-tune-cpu" "native"307 308// -mcpu with default -march309// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-e20 | FileCheck -check-prefix=MCPU-SIFIVE-E20 %s310// MCPU-SIFIVE-E20: "-nostdsysteminc" "-target-cpu" "sifive-e20"311// MCPU-SIFIVE-E20: "-target-feature" "+m" "-target-feature" "+c"312// MCPU-SIFIVE-E20: "-target-feature" "+zicsr" "-target-feature" "+zifencei"313// MCPU-SIFIVE-E20: "-target-abi" "ilp32"314 315// -mcpu with default -march316// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-e21 | FileCheck -check-prefix=MCPU-SIFIVE-E21 %s317// MCPU-SIFIVE-E21: "-nostdsysteminc" "-target-cpu" "sifive-e21"318// MCPU-SIFIVE-E21: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+c"319// MCPU-SIFIVE-E21: "-target-feature" "+zicsr" "-target-feature" "+zifencei"320// MCPU-SIFIVE-E21: "-target-abi" "ilp32"321 322// -mcpu with default -march323// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-e24 | FileCheck -check-prefix=MCPU-SIFIVE-E24 %s324// MCPU-SIFIVE-E24: "-nostdsysteminc" "-target-cpu" "sifive-e24"325// MCPU-SIFIVE-E24: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f"326// MCPU-SIFIVE-E24: "-target-feature" "+c"327// MCPU-SIFIVE-E24: "-target-feature" "+zicsr" "-target-feature" "+zifencei"328// MCPU-SIFIVE-E24: "-target-abi" "ilp32f"329 330// -mcpu with default -march331// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-e34 | FileCheck -check-prefix=MCPU-SIFIVE-E34 %s332// MCPU-SIFIVE-E34: "-nostdsysteminc" "-target-cpu" "sifive-e34"333// MCPU-SIFIVE-E34: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f"334// MCPU-SIFIVE-E34: "-target-feature" "+c"335// MCPU-SIFIVE-E34: "-target-feature" "+zicsr" "-target-feature" "+zifencei"336// MCPU-SIFIVE-E34: "-target-abi" "ilp32f"337 338// -mcpu with -mabi option339// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-s21 -mabi=lp64 | FileCheck -check-prefix=MCPU-ABI-SIFIVE-S21 %s340// MCPU-ABI-SIFIVE-S21: "-nostdsysteminc" "-target-cpu" "sifive-s21"341// MCPU-ABI-SIFIVE-S21: "-target-feature" "+m" "-target-feature" "+a"342// MCPU-ABI-SIFIVE-S21: "-target-feature" "+c"343// MCPU-ABI-SIFIVE-S21: "-target-feature" "+zicsr" "-target-feature" "+zifencei"344// MCPU-ABI-SIFIVE-S21: "-target-abi" "lp64"345 346// -mcpu with -mabi option347// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-s51 -mabi=lp64 | FileCheck -check-prefix=MCPU-ABI-SIFIVE-S51 %s348// MCPU-ABI-SIFIVE-S51: "-nostdsysteminc" "-target-cpu" "sifive-s51"349// MCPU-ABI-SIFIVE-S51: "-target-feature" "+m" "-target-feature" "+a"350// MCPU-ABI-SIFIVE-S51: "-target-feature" "+c"351// MCPU-ABI-SIFIVE-S51: "-target-feature" "+zicsr" "-target-feature" "+zifencei"352// MCPU-ABI-SIFIVE-S51: "-target-abi" "lp64"353 354// -mcpu with default -march355// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-s54 | FileCheck -check-prefix=MCPU-SIFIVE-S54 %s356// MCPU-SIFIVE-S54: "-nostdsysteminc" "-target-cpu" "sifive-s54"357// MCPU-SIFIVE-S54: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"358// MCPU-SIFIVE-S54: "-target-feature" "+c"359// MCPU-SIFIVE-S54: "-target-feature" "+zicsr" "-target-feature" "+zifencei"360// MCPU-SIFIVE-S54: "-target-abi" "lp64d"361 362// -mcpu with -mabi option363// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-s76 | FileCheck -check-prefix=MCPU-SIFIVE-S76 %s364// MCPU-SIFIVE-S76: "-nostdsysteminc" "-target-cpu" "sifive-s76"365// MCPU-SIFIVE-S76: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"366// MCPU-SIFIVE-S76: "-target-feature" "+c"367// MCPU-SIFIVE-S76: "-target-feature" "+zicsr" "-target-feature" "+zifencei" "-target-feature" "+zihintpause"368// MCPU-SIFIVE-S76: "-target-abi" "lp64d"369 370// -mcpu with default -march371// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-u54 | FileCheck -check-prefix=MCPU-SIFIVE-U54 %s372// MCPU-SIFIVE-U54: "-nostdsysteminc" "-target-cpu" "sifive-u54"373// MCPU-SIFIVE-U54: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"374// MCPU-SIFIVE-U54: "-target-feature" "+c"375// MCPU-SIFIVE-U54: "-target-feature" "+zicsr" "-target-feature" "+zifencei"376// MCPU-SIFIVE-U54: "-target-abi" "lp64d"377 378// -mcpu with -mabi option379// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-u54 -mabi=lp64 | FileCheck -check-prefix=MCPU-ABI-SIFIVE-U54 %s380// MCPU-ABI-SIFIVE-U54: "-nostdsysteminc" "-target-cpu" "sifive-u54"381// MCPU-ABI-SIFIVE-U54: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"382// MCPU-ABI-SIFIVE-U54: "-target-feature" "+c"383// MCPU-ABI-SIFIVE-U54: "-target-feature" "+zicsr" "-target-feature" "+zifencei"384// MCPU-ABI-SIFIVE-U54: "-target-abi" "lp64"385 386// -mcpu with default -march387// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-e76 | FileCheck -check-prefix=MCPU-SIFIVE-E76 %s388// MCPU-SIFIVE-E76: "-nostdsysteminc" "-target-cpu" "sifive-e76"389// MCPU-SIFIVE-E76: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f"390// MCPU-SIFIVE-E76: "-target-feature" "+c"391// MCPU-SIFIVE-E76: "-target-feature" "+zicsr" "-target-feature" "+zifencei"392// MCPU-SIFIVE-E76: "-target-abi" "ilp32f"393 394// -mcpu with -mabi option395// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=sifive-u74 -mabi=lp64 | FileCheck -check-prefix=MCPU-ABI-SIFIVE-U74 %s396// MCPU-ABI-SIFIVE-U74: "-nostdsysteminc" "-target-cpu" "sifive-u74"397// MCPU-ABI-SIFIVE-U74: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"398// MCPU-ABI-SIFIVE-U74: "-target-feature" "+c"399// MCPU-ABI-SIFIVE-U74: "-target-feature" "+zicsr" "-target-feature" "+zifencei"400// MCPU-ABI-SIFIVE-U74: "-target-abi" "lp64"401 402// -march overwrite -mcpu's default -march403// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=sifive-e31 -march=rv32imc | FileCheck -check-prefix=MCPU-MARCH %s404// MCPU-MARCH: "-nostdsysteminc" "-target-cpu" "sifive-e31"405// MCPU-MARCH: "-target-feature" "+m" "-target-feature" "+c"406// MCPU-MARCH: "-target-abi" "ilp32"407 408// -march=unset erases previous march409// RUN: %clang --target=riscv32 -### -c %s 2>&1 -march=rv32imc -march=unset -mcpu=sifive-e31 | FileCheck -check-prefix=MARCH-UNSET %s410// MARCH-UNSET: "-nostdsysteminc" "-target-cpu" "sifive-e31"411// MARCH-UNSET: "-target-feature" "+m"412// MARCH-UNSET: "-target-feature" "+a"413// MARCH-UNSET: "-target-feature" "+c"414// MARCH-UNSET-SAME: "-target-abi" "ilp32"415 416// Check interaction between -mcpu and mtune, -mtune won't affect arch related417// target feature, but -mcpu will.418//419// In this case, sifive-e31 is rv32imac, sifive-e76 is rv32imafc, so F-extension420// should not enabled.421//422// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=sifive-e31 -mtune=sifive-e76 | FileCheck -check-prefix=MTUNE-E31-MCPU-E76 %s423// MTUNE-E31-MCPU-E76: "-target-cpu" "sifive-e31"424// MTUNE-E31-MCPU-E76-NOT: "-target-feature" "+f"425// MTUNE-E31-MCPU-E76-SAME: "-target-feature" "+m"426// MTUNE-E31-MCPU-E76-SAME: "-target-feature" "+a"427// MTUNE-E31-MCPU-E76-SAME: "-target-feature" "+c"428// MTUNE-E31-MCPU-E76-SAME: "-target-feature" "+zicsr" "-target-feature" "+zifencei"429// MTUNE-E31-MCPU-E76-SAME: "-tune-cpu" "sifive-e76"430 431// -mcpu with default -march include experimental extensions432// RUN: %clang -target riscv64 -### -c %s 2>&1 -menable-experimental-extensions -mcpu=sifive-x280 | FileCheck -check-prefix=MCPU-SIFIVE-X280 %s433// MCPU-SIFIVE-X280: "-nostdsysteminc" "-target-cpu" "sifive-x280"434// MCPU-SIFIVE-X280-SAME: "-target-feature" "+m" "-target-feature" "+a" "-target-feature" "+f" "-target-feature" "+d"435// MCPU-SIFIVE-X280-SAME: "-target-feature" "+c" "-target-feature" "+v"436// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zicsr" "-target-feature" "+zifencei"437// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zfh"438// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zba" "-target-feature" "+zbb"439// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zvfh"440// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zvl128b"441// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zvl256b" "-target-feature" "+zvl32b"442// MCPU-SIFIVE-X280-SAME: "-target-feature" "+zvl512b" "-target-feature" "+zvl64b"443// MCPU-SIFIVE-X280-SAME: "-target-abi" "lp64d"444 445// RUN: %clang -target riscv64 -### -c %s 2>&1 -menable-experimental-extensions -mcpu=sifive-x390 | FileCheck -check-prefix=MCPU-SIFIVE-X390 %s446// MCPU-SIFIVE-X390: "-target-cpu" "sifive-x390"447// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-sifive-x390.c`448// MCPU-SIFIVE-X390-SAME: "-target-abi" "lp64d"449 450// RUN: %clang -target riscv64 -### -c %s 2>&1 -mcpu=sifive-p450 | FileCheck -check-prefix=MCPU-SIFIVE-P450 %s451// MCPU-SIFIVE-P450: "-nostdsysteminc" "-target-cpu" "sifive-p450"452// MCPU-SIFIVE-P450-SAME: "-target-feature" "+m"453// MCPU-SIFIVE-P450-SAME: "-target-feature" "+a"454// MCPU-SIFIVE-P450-SAME: "-target-feature" "+f"455// MCPU-SIFIVE-P450-SAME: "-target-feature" "+d"456// MCPU-SIFIVE-P450-SAME: "-target-feature" "+c"457// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zic64b"458// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zicbom"459// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zicbop"460// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zicboz"461// MCPU-SIFIVE-P450-SAME: "-target-feature" "+ziccamoa"462// MCPU-SIFIVE-P450-SAME: "-target-feature" "+ziccif"463// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zicclsm"464// MCPU-SIFIVE-P450-SAME: "-target-feature" "+ziccrse"465// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zicsr"466// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zifencei"467// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zihintntl"468// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zihintpause"469// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zihpm"470// MCPU-SIFIVE-P450-SAME: "-target-feature" "+za64rs"471// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zfhmin"472// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zba"473// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zbb"474// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zbs"475// MCPU-SIFIVE-P450-SAME: "-target-feature" "+zkt"476// MCPU-SIFIVE-P450-SAME: "-target-abi" "lp64d"477 478// RUN: %clang -target riscv64 -### -c %s 2>&1 -mcpu=sifive-p470 | FileCheck -check-prefix=MCPU-SIFIVE-P470 %s479// MCPU-SIFIVE-P470: "-target-cpu" "sifive-p470"480// MCPU-SIFIVE-P470-SAME: "-target-feature" "+m"481// MCPU-SIFIVE-P470-SAME: "-target-feature" "+a"482// MCPU-SIFIVE-P470-SAME: "-target-feature" "+f"483// MCPU-SIFIVE-P470-SAME: "-target-feature" "+d"484// MCPU-SIFIVE-P470-SAME: "-target-feature" "+c"485// MCPU-SIFIVE-P470-SAME: "-target-feature" "+v"486// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zic64b"487// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zicbom"488// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zicbop"489// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zicboz"490// MCPU-SIFIVE-P470-SAME: "-target-feature" "+ziccamoa"491// MCPU-SIFIVE-P470-SAME: "-target-feature" "+ziccif"492// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zicclsm"493// MCPU-SIFIVE-P470-SAME: "-target-feature" "+ziccrse"494// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zicsr"495// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zifencei"496// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zihintntl"497// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zihintpause"498// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zihpm"499// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zmmul"500// MCPU-SIFIVE-P470-SAME: "-target-feature" "+za64rs"501// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zfhmin"502// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zba"503// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zbb"504// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zbs"505// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zkt"506// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvbb"507// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvbc"508// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zve32f"509// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zve32x"510// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zve64d"511// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zve64f"512// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zve64x"513// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvkg"514// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvkn"515// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvknc"516// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvkned"517// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvkng"518// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvknhb"519// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvks"520// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvksc"521// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvksed"522// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvksg"523// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvksh"524// MCPU-SIFIVE-P470-SAME: "-target-feature" "+zvkt"525// MCPU-SIFIVE-P470-SAME: "-target-abi" "lp64d"526 527// RUN: %clang -target riscv64 -### -c %s 2>&1 -mcpu=sifive-p550 | FileCheck -check-prefix=MCPU-SIFIVE-P550 %s528// MCPU-SIFIVE-P550: "-nostdsysteminc" "-target-cpu" "sifive-p550"529// MCPU-SIFIVE-P550-SAME: "-target-feature" "+m"530// MCPU-SIFIVE-P550-SAME: "-target-feature" "+a"531// MCPU-SIFIVE-P550-SAME: "-target-feature" "+f"532// MCPU-SIFIVE-P550-SAME: "-target-feature" "+d"533// MCPU-SIFIVE-P550-SAME: "-target-feature" "+c"534// MCPU-SIFIVE-P550-SAME: "-target-feature" "+zicsr"535// MCPU-SIFIVE-P550-SAME: "-target-feature" "+zifencei"536// MCPU-SIFIVE-P550-SAME: "-target-feature" "+zba"537// MCPU-SIFIVE-P550-SAME: "-target-feature" "+zbb"538// MCPU-SIFIVE-P550-SAME: "-target-abi" "lp64d"539 540// RUN: %clang -target riscv64 -### -c %s 2>&1 -mcpu=sifive-p670 | FileCheck -check-prefix=MCPU-SIFIVE-P670 %s541// MCPU-SIFIVE-P670: "-target-cpu" "sifive-p670"542// MCPU-SIFIVE-P670-SAME: "-target-feature" "+m"543// MCPU-SIFIVE-P670-SAME: "-target-feature" "+a"544// MCPU-SIFIVE-P670-SAME: "-target-feature" "+f"545// MCPU-SIFIVE-P670-SAME: "-target-feature" "+d"546// MCPU-SIFIVE-P670-SAME: "-target-feature" "+c"547// MCPU-SIFIVE-P670-SAME: "-target-feature" "+v"548// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zic64b"549// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zicbom"550// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zicbop"551// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zicboz"552// MCPU-SIFIVE-P670-SAME: "-target-feature" "+ziccamoa"553// MCPU-SIFIVE-P670-SAME: "-target-feature" "+ziccif"554// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zicclsm"555// MCPU-SIFIVE-P670-SAME: "-target-feature" "+ziccrse"556// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zicsr"557// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zifencei"558// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zihintntl"559// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zihintpause"560// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zihpm"561// MCPU-SIFIVE-P670-SAME: "-target-feature" "+za64rs"562// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zfhmin"563// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zba"564// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zbb"565// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zbs"566// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zkt"567// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvbb"568// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvbc"569// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zve32f"570// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zve32x"571// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zve64d"572// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zve64f"573// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zve64x"574// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvkg"575// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvkn"576// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvknc"577// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvkned"578// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvkng"579// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvknhb"580// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvks"581// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvksc"582// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvksed"583// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvksg"584// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvksh"585// MCPU-SIFIVE-P670-SAME: "-target-feature" "+zvkt"586// MCPU-SIFIVE-P670-SAME: "-target-abi" "lp64d"587 588// RUN: %clang -target riscv64 -### -c %s 2>&1 -mcpu=sifive-p870 | FileCheck -check-prefix=MCPU-SIFIVE-P870 %s589// MCPU-SIFIVE-P870: "-target-cpu" "sifive-p870"590// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-sifive-p870.c`591// MCPU-SIFIVE-P870-SAME: "-target-abi" "lp64d"592 593// RUN: %clang -target riscv32 -### -c %s 2>&1 -mcpu=rp2350-hazard3 | FileCheck -check-prefix=MCPU-HAZARD3 %s594// MCPU-HAZARD3: "-target-cpu" "rp2350-hazard3"595// MCPU-HAZARD3-SAME: "-target-feature" "+m"596// MCPU-HAZARD3-SAME: "-target-feature" "+a"597// MCPU-HAZARD3-SAME: "-target-feature" "+c"598// MCPU-HAZARD3-SAME: "-target-feature" "+zicsr"599// MCPU-HAZARD3-SAME: "-target-feature" "+zifencei"600// MCPU-HAZARD3-SAME: "-target-feature" "+zcb"601// MCPU-HAZARD3-SAME: "-target-feature" "+zcmp"602// MCPU-HAZARD3-SAME: "-target-feature" "+zba"603// MCPU-HAZARD3-SAME: "-target-feature" "+zbb"604// MCPU-HAZARD3-SAME: "-target-feature" "+zbkb"605// MCPU-HAZARD3-SAME: "-target-feature" "+zbs"606// MCPU-HAZARD3-SAME: "-target-abi" "ilp32"607 608// Check failed cases609 610// RUN: not %clang --target=riscv32 -### -c %s 2>&1 -mcpu=generic-rv321 | FileCheck -check-prefix=FAIL-MCPU-NAME %s611// FAIL-MCPU-NAME: error: unsupported argument 'generic-rv321' to option '-mcpu='612 613// RUN: not %clang --target=riscv32 -### -c %s 2>&1 -mcpu=generic-rv32 -march=rv64i | FileCheck -check-prefix=MISMATCH-ARCH %s614// MISMATCH-ARCH: cpu 'generic-rv32' does not support rv64615 616// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=syntacore-scr3-rv32 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR3-RV32 %s617// MCPU-SYNTACORE-SCR3-RV32: "-target-cpu" "syntacore-scr3-rv32"618// MCPU-SYNTACORE-SCR3-RV32-SAME: "-target-feature" "+m"619// MCPU-SYNTACORE-SCR3-RV32-SAME: "-target-feature" "+c"620// MCPU-SYNTACORE-SCR3-RV32-SAME: "-target-feature" "+zicsr"621// MCPU-SYNTACORE-SCR3-RV32-SAME: "-target-feature" "+zifencei"622// MCPU-SYNTACORE-SCR3-RV32-SAME: "-target-abi" "ilp32"623 624// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr3-rv32 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR3-RV32 %s625// MTUNE-SYNTACORE-SCR3-RV32: "-tune-cpu" "syntacore-scr3-rv32"626 627// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=syntacore-scr3-rv64 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR3-RV64 %s628// MCPU-SYNTACORE-SCR3-RV64: "-target-cpu" "syntacore-scr3-rv64"629// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-feature" "+m"630// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-feature" "+a"631// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-feature" "+c"632// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-feature" "+zicsr"633// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-feature" "+zifencei"634// MCPU-SYNTACORE-SCR3-RV64-SAME: "-target-abi" "lp64"635 636// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=syntacore-scr3-rv64 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR3-RV64 %s637// MTUNE-SYNTACORE-SCR3-RV64: "-tune-cpu" "syntacore-scr3-rv64"638 639// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=syntacore-scr4-rv32 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR4-RV32 %s640// MCPU-SYNTACORE-SCR4-RV32: "-target-cpu" "syntacore-scr4-rv32"641// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+m"642// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+f"643// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+d"644// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+c"645// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+zicsr"646// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-feature" "+zifencei"647// MCPU-SYNTACORE-SCR4-RV32-SAME: "-target-abi" "ilp32d"648 649// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr4-rv32 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR4-RV32 %s650// MTUNE-SYNTACORE-SCR4-RV32: "-tune-cpu" "syntacore-scr4-rv32"651 652// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=syntacore-scr4-rv64 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR4-RV64 %s653// MCPU-SYNTACORE-SCR4-RV64: "-target-cpu" "syntacore-scr4-rv64"654// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+m"655// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+a"656// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+f"657// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+d"658// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+c"659// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+zicsr"660// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-feature" "+zifencei"661// MCPU-SYNTACORE-SCR4-RV64-SAME: "-target-abi" "lp64d"662 663// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=syntacore-scr4-rv64 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR4-RV64 %s664// MTUNE-SYNTACORE-SCR4-RV64: "-tune-cpu" "syntacore-scr4-rv64"665 666// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=syntacore-scr5-rv32 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR5-RV32 %s667// MCPU-SYNTACORE-SCR5-RV32: "-target-cpu" "syntacore-scr5-rv32"668// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+m"669// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+a"670// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+f"671// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+d"672// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+c"673// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+zicsr"674// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-feature" "+zifencei"675// MCPU-SYNTACORE-SCR5-RV32-SAME: "-target-abi" "ilp32d"676 677// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr5-rv32 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR5-RV32 %s678// MTUNE-SYNTACORE-SCR5-RV32: "-tune-cpu" "syntacore-scr5-rv32"679 680// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=syntacore-scr5-rv64 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR5-RV64 %s681// MCPU-SYNTACORE-SCR5-RV64: "-target-cpu" "syntacore-scr5-rv64"682// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+m"683// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+a"684// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+f"685// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+d"686// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+c"687// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+zicsr"688// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-feature" "+zifencei"689// MCPU-SYNTACORE-SCR5-RV64-SAME: "-target-abi" "lp64d"690 691// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=syntacore-scr5-rv64 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR5-RV64 %s692// MTUNE-SYNTACORE-SCR5-RV64: "-tune-cpu" "syntacore-scr5-rv64"693 694// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=syntacore-scr7 | FileCheck -check-prefix=MCPU-SYNTACORE-SCR7 %s695// MCPU-SYNTACORE-SCR7: "-target-cpu" "syntacore-scr7"696// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+m"697// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+a"698// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+f"699// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+d"700// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+c"701// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+v"702// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zicsr"703// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zifencei"704// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zba"705// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbb"706// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbc"707// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbkb"708// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbkc"709// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbkx"710// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zbs"711// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zkn"712// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zknd"713// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zkne"714// MCPU-SYNTACORE-SCR7-SAME: "-target-feature" "+zknh"715// MCPU-SYNTACORE-SCR7-SAME: "-target-abi" "lp64d"716 717// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=syntacore-scr7 | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR7 %s718// MTUNE-SYNTACORE-SCR7: "-tune-cpu" "syntacore-scr7"719 720// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=andes-a25 | FileCheck -check-prefix=MCPU-ANDES-A25 %s721// MCPU-ANDES-A25: "-target-cpu" "andes-a25"722// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-a25.c`723// MCPU-ANDES-A25-SAME: "-target-abi" "ilp32d"724 725// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=andes-a25 | FileCheck -check-prefix=MTUNE-ANDES-A25 %s726// MTUNE-ANDES-A25: "-tune-cpu" "andes-a25"727 728// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=andes-ax25 | FileCheck -check-prefix=MCPU-ANDES-AX25 %s729// MCPU-ANDES-AX25: "-target-cpu" "andes-ax25"730// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-ax25.c`731// MCPU-ANDES-AX25-SAME: "-target-abi" "lp64d"732 733// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=andes-ax25 | FileCheck -check-prefix=MTUNE-ANDES-AX25 %s734// MTUNE-ANDES-AX25: "-tune-cpu" "andes-ax25"735 736// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=andes-n45 | FileCheck -check-prefix=MCPU-ANDES-N45 %s737// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-n45.c`738// MCPU-ANDES-N45: "-target-cpu" "andes-n45"739// MCPU-ANDES-N45-SAME: "-target-abi" "ilp32d"740 741// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=andes-n45 | FileCheck -check-prefix=MTUNE-ANDES-N45 %s742// MTUNE-ANDES-N45: "-tune-cpu" "andes-n45"743 744// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=andes-nx45 | FileCheck -check-prefix=MCPU-ANDES-NX45 %s745// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-nx45.c`746// MCPU-ANDES-NX45: "-target-cpu" "andes-nx45"747// MCPU-ANDES-NX45-SAME: "-target-abi" "lp64d"748 749// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=andes-nx45 | FileCheck -check-prefix=MTUNE-ANDES-NX45 %s750// MTUNE-ANDES-NX45: "-tune-cpu" "andes-nx45"751 752// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mcpu=andes-a45 | FileCheck -check-prefix=MCPU-ANDES-A45 %s753// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-a45.c`754// MCPU-ANDES-A45: "-target-cpu" "andes-a45"755// MCPU-ANDES-A45-SAME: "-target-abi" "ilp32d"756 757// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=andes-a45 | FileCheck -check-prefix=MTUNE-ANDES-A45 %s758// MTUNE-ANDES-A45: "-tune-cpu" "andes-a45"759 760// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=andes-ax45 | FileCheck -check-prefix=MCPU-ANDES-AX45 %s761// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-ax45.c`762// MCPU-ANDES-AX45: "-target-cpu" "andes-ax45"763// MCPU-ANDES-AX45-SAME: "-target-abi" "lp64d"764 765// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=andes-ax45 | FileCheck -check-prefix=MTUNE-ANDES-AX45 %s766// MTUNE-ANDES-AX45: "-tune-cpu" "andes-ax45"767 768// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=andes-ax45mpv | FileCheck -check-prefix=MCPU-ANDES-AX45MPV %s769// COM: The list of extensions are tested in `test/Driver/print-enabled-extensions/riscv-andes-ax45mpv.c`770// MCPU-ANDES-AX45MPV: "-target-cpu" "andes-ax45mpv"771// MCPU-ANDES-AX45MPV-SAME: "-target-abi" "lp64d"772 773// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=andes-ax45mpv | FileCheck -check-prefix=MTUNE-ANDES-AX45MPV %s774// MTUNE-ANDES-AX45MPV: "-tune-cpu" "andes-ax45mpv"775