From 627b46315389b206d3e25169ca585bd52853b04b Mon Sep 17 00:00:00 2001 From: Joey Gouly Date: Thu, 24 Jan 2013 15:14:22 +0000 Subject: [PATCH] Fix an OpenCL test case that was OpenCL conformant. It had program scope variables that were not in the constant address space, make them to be function scope variables instead. Also move the test to the SemaOpenCL directory. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173352 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/SemaOpenCL/shifts.cl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/SemaOpenCL/shifts.cl diff --git a/test/SemaOpenCL/shifts.cl b/test/SemaOpenCL/shifts.cl new file mode 100644 index 0000000000..f71927c7cf --- /dev/null +++ b/test/SemaOpenCL/shifts.cl @@ -0,0 +1,14 @@ +// RUN: %clang_cc1 -x cl -O0 -emit-llvm %s -o - -triple x86_64-linux-gnu | FileCheck %s +// OpenCL essentially reduces all shift amounts to the last word-size bits before evaluating. +// Test this both for variables and constants evaluated in the front-end. + +//CHECK: @negativeShift32 +int negativeShift32(int a,int b) { + //CHECK: %array0 = alloca [256 x i8] + char array0[((int)1)<<40]; + //CHECK: %array1 = alloca [256 x i8] + char array1[((int)1)<<(-24)]; + + //CHECK: ret i32 65536 + return ((int)1)<<(-16); +} -- 2.40.0