## Test various combinations of ELF flag values for SPARC.
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC" -DFLAG_NAME=""
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON -DFLAG_VALUE=0x0
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x0 -DGNU_FLAG_NAME=""
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" -DFLAG_NAME="EF_SPARC_32PLUS"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0 \
# RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG_VALUE=0x100
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x100 -DGNU_FLAG_NAME=", V8+ ABI"
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" \
# RUN: -DFLAG_NAME="EF_SPARC_32PLUS, EF_SPARC_SUN_US1"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1\
# RUN: -DFLAG_VALUE=0x300 \
# RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG1_NAME=EF_SPARC_SUN_US1
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x300 \
# RUN: -DGNU_FLAG_NAME=", V8+ ABI, Sun UltraSPARC I extensions"
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" \
# RUN: -DFLAG_NAME="EF_SPARC_32PLUS, EF_SPARC_SUN_US1, EF_SPARC_HAL_R1, EF_SPARC_SUN_US3"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1,LLVM-FLAG2,LLVM-FLAG3 \
# RUN: -DFLAG_VALUE=0xF00 \
# RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG1_NAME=EF_SPARC_HAL_R1 \
# RUN: -DFLAG2_NAME=EF_SPARC_SUN_US1 -DFLAG3_NAME=EF_SPARC_SUN_US3
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0xF00 \
# RUN: -DGNU_FLAG_NAME=", V8+ ABI, Sun UltraSPARC I extensions, HAL/Fujitsu R1 extensions, Sun UltraSPARC III extensions"
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" -DFLAG_NAME=""
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON -DFLAG_VALUE=0x0
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x0 -DGNU_FLAG_NAME=""
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" -DFLAG_NAME="EF_SPARC_SUN_US1"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0 \
# RUN: -DFLAG_VALUE=0x200 -DFLAG0_NAME=EF_SPARC_SUN_US1
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x200 -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions"
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" \
# RUN: -DFLAG_NAME="EF_SPARC_SUN_US1, EF_SPARCV9_RMO"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1 \
# RUN: -DFLAG_VALUE=0x202 \
# RUN: -DFLAG0_NAME=EF_SPARCV9_RMO -DFLAG1_NAME=EF_SPARC_SUN_US1
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0x202 \
# RUN: -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions, Relaxed Memory Ordering"
# RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" \
# RUN: -DFLAG_NAME="EF_SPARC_SUN_US1, EF_SPARC_HAL_R1, EF_SPARC_SUN_US3, EF_SPARCV9_PSO"
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1,LLVM-FLAG2,LLVM-FLAG3 \
# RUN: -DFLAG_VALUE=0xE01 \
# RUN: -DFLAG0_NAME=EF_SPARCV9_PSO -DFLAG1_NAME=EF_SPARC_HAL_R1 \
# RUN: -DFLAG2_NAME=EF_SPARC_SUN_US1 -DFLAG3_NAME=EF_SPARC_SUN_US3
# RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \
# RUN: -DFLAG_VALUE=0xE01\
# RUN: -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions, HAL/Fujitsu R1 extensions, Sun UltraSPARC III extensions, Partial Store Ordering"
--- !ELF
FileHeader:
Class: [[CLASS_NAME]]
Data: ELFDATA2MSB
Type: ET_REL
Machine: [[MACHINE_NAME]]
Flags: [ [[FLAG_NAME]] ]
# LLVM-COMMON: Flags [ ([[FLAG_VALUE]])
# LLVM-FLAG0-NEXT: [[FLAG0_NAME]]
# LLVM-FLAG1-NEXT: [[FLAG1_NAME]]
# LLVM-FLAG2-NEXT: [[FLAG2_NAME]]
# LLVM-FLAG3-NEXT: [[FLAG3_NAME]]
# LLVM-COMMON-NEXT: ]
# GNU: Flags: [[FLAG_VALUE]][[GNU_FLAG_NAME]]