brintos

brintos / llvm-project-archived public Read only

0
0
Text · 631 B · 3e6d170 Raw
22 lines · plain
1// RUN: %clang_cc1 -triple x86_64-linux-pc -O3 -disable-llvm-passes %s -emit-llvm -o - | FileCheck %s2 3void Shifts(_BitInt(12) E, int i) {4  E << 99;5  // CHECK: shl i12 %{{.+}}, 36 7  77 << E;8  // CHECK: %[[PROM:.+]] = zext i12 %{{.+}} to i329  // CHECK: %[[MASK:.+]] = and i32 %[[PROM]], 3110  // CHECK: shl i32 77, %[[MASK]]11 12  E << i;13  // CHECK: %[[PROM:.+]] = trunc i32 %{{.+}} to i1214  // CHECK: %[[MASK:.+]] = urem i12 %[[PROM]], 1215  // CHECK: shl i12 %{{.+}}, %[[MASK]]16 17  i << E;18  // CHECK: %[[PROM:.+]] = zext i12 %{{.+}} to i3219  // CHECK: %[[MASK:.+]] = and i32 %[[PROM]], 3120  // CHECK: shl i32 %{{.+}}, %[[MASK]]21}22