158878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar// REQUIRES: mips-registered-target 258878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar// RUN: %clang_cc1 -triple mips-linux-gnu -emit-llvm -o - %s | FileCheck %s 358878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 458878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainarint data; 558878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 658878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainarvoid m () { 758878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar asm("lw $1, %0" :: "m"(data)); 858878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar // CHECK: call void asm sideeffect "lw $$1, $0", "*m,~{$1}"(i32* @data) 958878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar} 1058878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 1158878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainarvoid ZC () { 1258878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar asm("ll $1, %0" :: "ZC"(data)); 1358878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar // CHECK: call void asm sideeffect "ll $$1, $0", "*^ZC,~{$1}"(i32* @data) 1458878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar} 1558878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 1658878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainarvoid R () { 1758878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar asm("lw $1, %0" :: "R"(data)); 1858878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar // CHECK: call void asm sideeffect "lw $$1, $0", "*R,~{$1}"(i32* @data) 1958878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar} 204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarint additionalClobberedRegisters () { 224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int temp0; 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar asm volatile( 244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "mfhi %[temp0], $ac1 \n\t" 254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar : [temp0]"=&r"(temp0) 264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar : 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar : "memory", "t0", "t1", "$ac1hi", "$ac1lo", "$ac2hi", "$ac2lo", "$ac3hi", "$ac3lo" 284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ); 294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return 0; 304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar // CHECK: call i32 asm sideeffect "mfhi $0, $$ac1 \0A\09", "=&r,~{memory},~{$8},~{$9},~{$ac1hi},~{$ac1lo},~{$ac2hi},~{$ac2lo},~{$ac3hi},~{$ac3lo},~{$1}" 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 32