1*1d97cb1fSYaxun (Sam) Liu // Create module flag for code object version.
2*1d97cb1fSYaxun (Sam) Liu 
3*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
4*1d97cb1fSYaxun (Sam) Liu // RUN:   -o - %s | FileCheck %s -check-prefix=NONE
5*1d97cb1fSYaxun (Sam) Liu 
6*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
7*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=2 -o - %s | FileCheck -check-prefix=NONE %s
8*1d97cb1fSYaxun (Sam) Liu 
9*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
10*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=3 -o - %s | FileCheck -check-prefix=NONE %s
11*1d97cb1fSYaxun (Sam) Liu 
12*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
13*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=4 -o - %s | FileCheck -check-prefix=NONE %s
14*1d97cb1fSYaxun (Sam) Liu 
15*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
16*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=5 -o - %s | FileCheck -check-prefix=V5 %s
17*1d97cb1fSYaxun (Sam) Liu 
18*1d97cb1fSYaxun (Sam) Liu // RUN: %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
19*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=none -o - %s | FileCheck %s -check-prefix=NONE
20*1d97cb1fSYaxun (Sam) Liu 
21*1d97cb1fSYaxun (Sam) Liu // RUN: not %clang_cc1 -fcuda-is-device -triple amdgcn-amd-amdhsa -emit-llvm \
22*1d97cb1fSYaxun (Sam) Liu // RUN:   -mcode-object-version=4.1 -o - %s 2>&1| FileCheck %s -check-prefix=INV
23*1d97cb1fSYaxun (Sam) Liu 
24*1d97cb1fSYaxun (Sam) Liu // V5: !{{.*}} = !{i32 1, !"amdgpu_code_object_version", i32 500}
25*1d97cb1fSYaxun (Sam) Liu // NONE-NOT: !{{.*}} = !{i32 1, !"amdgpu_code_object_version",
26*1d97cb1fSYaxun (Sam) Liu // INV: error: invalid value '4.1' in '-mcode-object-version=4.1'
27